既然是重寫,比以前當然改進了很多。
原先,布置的作業沒有指定給誰做的,如果有作業系統,嵌入式系統原理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());//根據主鍵設定urltx.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