網站作業佈置批改功能重寫基本完成,記錄一下

既然是重寫,比以前當然改進了很多。

        原先,佈置的作業沒有指定給誰做的,如果有操作系統,嵌入式系統原理2門課,某生選了操作系統,但他還可以對嵌入式原理的作業進行提交。這樣學生當然沒有什麼損失,不過老師批作業的時候就比較蛋疼了。還得把沒選這門課的學生的作業剔除。

        另外,對佈置作業的界面也處理了一下,雖然只有一個彈出框,但還是整了一個下午,其中包括對js和css不是很熟,還是就是關於kindeditor的異步加載(後來查了官方例子也搞定了)


佈置作業界面:因爲這個功能只有一個老師會用到,所以也懶得再寫js去對日期的合法性等做檢查了

這個界面實際就是一個div模擬的彈出框,我個人比較喜歡這樣的效果,後面也加了一層半透明的面罩,看上去更ok了

由下拉菜單,教師可以選擇這一份作業時哪門課程的,如果一學期剛開學,需要添加新的科目,可以選中"其他":

, 前面說到光這個就搞了半天,一點不誇張,因爲之前根本不知道這個彈出窗口prompt("請輸入要添加的課程名稱","");

百度的時候各種亂七八糟的關鍵字:

js 彈出框

js 彈出框 可以輸入

……

後來無奈只能上w3cshcool上去查了下js。


打開框到確定佈置作業,全部用到了ajax(當然用了jquery, 純js不會)

也不知道我這樣的水平算不算會jquery呢?

ajax只用到過$.post(), $.get(), load()

平時彈出div只會用最簡單的toggle(), show(), hide() fade()...

animate() 沒用有過,ps:可能拼錯了~

以前只會用$("#id").val()或$(".class").val()取值, 今天會了一個  $("input[name=title]").val()


css:

1)以前一直不知道怎麼讓彈出div絕對定位, 且居中,上網看了一下, 看到用了很多代碼,實在不想直接copy,突然想到用jquery,代碼如下:

w = document.body.scrollWidth;

box.css("left", (w - 700) / 2);//700是彈出框寬度,最好也用jquery取一下

2)之前一直不知道怎麼讓彈出div不動(即就算我拉滾動條,div相對於屏幕還是不動的)

原來可以這樣:

div{

      position:fixed;

}

以前只知道position可以有relative和absolute


附上一段kindeditor官方異步加載編輯器的代碼

$.getScript('/os/editor/kindeditor.js', function() {
	KindEditor.basePath = '/os/editor/';
	editor = KindEditor.create("#editor", {
		height:300, 
		width:700
	});
});

Hibernate:

關於對象持久態和瞬態

public boolean save(Homework homework) {
		boolean flag = true;
		try{
			Session session = HibernateSessionFactory.getSession();
			Transaction tx = session.beginTransaction();
			session.save(homework);
			homework.setUrl("showHomework.action?id=" + homework.getHid());//根據主鍵設定url
			tx.commit();
			session.close();
		}catch (Exception e) {
			e.printStackTrace();
			flag = false;
		}
		return flag;
	}
因爲url中有主鍵hid, 而hid是自增的,所以只有先保存對象,再更新對象。

由於session.save(homework) 後homework爲持久態, 此時對homework進行就該最後將更新到數據庫中。

以前怎麼做的呢:

HomeworkServiceImpl.java:

ave(homework);

homework = get(homework);

homework.setUrl()

update(homework)

現在看看比較可笑。


不寫了。

end

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章