您的位置:首页 > 运维架构 > 网站架构

网站作业布置批改功能重写基本完成,记录一下

2012-01-30 20:17 281 查看
既然是重写,比以前当然改进了很多。

原先,布置的作业没有指定给谁做的,如果有操作系统,嵌入式系统原理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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: