既然是重写,比以前当然改进了很多。
原先,布置的作业没有指定给谁做的,如果有操作系统,嵌入式系统原理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