前期已完成以下功能开发:
- 登录
- 后台管理主页面
- 奖助学金项目管理
- 机构管理
- 人员管理
- 角色权限管理
今天来开发问题反馈功能。问题反馈是指学生提出反馈问题,并且查看反馈问题的答复信息(管理员负责答复问题)。
此处涉及两个页面:学生问题反馈页面questionAsk.html,管理员问题答复页面questionReply.html。
2. 添加菜单首先在WebContent目录下添加两个页面questionAsk.html和questionReply.html。
然后在Menu表添加两个菜单:
INSERT INTO `scholar-system`.`menu`(`id`, `name`, `path`) VALUES (5, '问题反馈', 'questionAsk.html');
INSERT INTO `scholar-system`.`menu`(`id`, `name`, `path`) VALUES (6, '问题答复', 'questionReply.html');
最后还需要通过管理员的权限管理页面,为管理员角色添加问题答复权限,为学生角色添加问题反馈权限。
3. 学生问题反馈开发首先学生需要能分页查看自己反馈的问题,此处就是一个普通的分页查询,需要注意的一点是在查询时需要携带当前登录用户的信息,因为学生只能查看自己反馈的问题。然后学生可以提交问题,在问题反馈表中新增一条记录即可。
修改questionAsk.html代码:
序号
反馈人
所属班级
问题内容
问题答复
反馈内容:
保存
修改CoreServlet:
// 获取问题列表
else if (method.equals("getQuestionPage")) {
if (loginUser.getRole().equals("schoolmaster")) {// 管理员查看全部问题
QuestionDao questionDao = new QuestionDao();
total = questionDao.getCount();
result.setTotal(total);
result.setRows(questionDao.getPage(page, rows));
} else if (loginUser.getRole().equals("student")) {// 学生查看自己提交的问题
QuestionDao questionDao = new QuestionDao();
total = questionDao.getCount(loginUser.getId());
result.setTotal(total);
result.setRows(questionDao.getPage(page, rows, loginUser.getId()));
}
}
// 提交问题
else if (method.equals("questionSubmit")) {
// 获取机构信息
DepartDao departDao = new DepartDao();
Depart depart = departDao.getById(loginUser.getDepartId());
// 组装问题信息
Question question = new Question();
question.setUserId(loginUser.getId());
question.setUserName(loginUser.getUserName());
question.setDepartId(depart.getId());
question.setDepartName(depart.getName());
question.setContent(request.getParameter("content"));
// 插入数据库
QuestionDao questionDao = new QuestionDao();
questionDao.insert(question);
result.setCode(0);
result.setMsg("操作成功");
}
修改QuestionDao:
public int getCount() throws Exception {
Connection conn = ConnectionUtils.getConnection();
String sql = "select count(id) from question ";
QueryRunner runner = new QueryRunner();
Number number = (Number) runner.query(conn, sql, new ScalarHandler());
int value = number.intValue();
ConnectionUtils.releaseConnection(conn);
return value;
}
public List getPage(int page, int rows) throws Exception {
Connection conn = ConnectionUtils.getConnection();
String sql = "select * from question limit ?,?";
QueryRunner runner = new QueryRunner();
Object[] params = { (page - 1) * rows };
List questions = runner.query(conn, sql, new BeanListHandler(Question.class), params);
ConnectionUtils.releaseConnection(conn);
return questions;
}
public int getCount(String userId) throws Exception {
Connection conn = ConnectionUtils.getConnection();
String sql = "select count(id) from question where userId=?";
QueryRunner runner = new QueryRunner();
Object[] params = { userId };
Number number = (Number) runner.query(conn, sql, new ScalarHandler(), params);
int value = number.intValue();
ConnectionUtils.releaseConnection(conn);
return value;
}
public List getPage(int page, int rows, String userId) throws Exception {
Connection conn = ConnectionUtils.getConnection();
String sql = "select * from question where userId=? limit ?,?";
QueryRunner runner = new QueryRunner();
Object[] params = { userId,(page - 1) * rows, rows };
List questions = runner.query(conn, sql, new BeanListHandler(Question.class), params);
ConnectionUtils.releaseConnection(conn);
return questions;
}
4. 管理员问题答复功能开发
其实管理员功能答复,首先是显示所有问题的分页列表,然后就是可以编辑其中一个问题的reply属性。
没有什么新的功能,感兴趣的可以直接去看源码。
5. 总结问题反馈和问题答复其实就是一个变通版本的分页查询、新增、修改功能。需要根据登录人员的角色查询/处理不同的数据库数据而已。


![EasyUI+JavaWeb奖助学金管理系统[17]-问题反馈功能开发 EasyUI+JavaWeb奖助学金管理系统[17]-问题反馈功能开发](http://www.mshxw.com/aiimages/31/236600.png)
