多语言展示
当前在线:1905今日阅读:167今日分享:16

SSH框架之浅析探讨(四)添加与编辑

本内容将教大家做一个基于SSH框架的具有“增、删、改、查”的小项目。至于搭建开发环境,准备开发工具等前期工作,请参考我的上一篇“SSH框架之浅析探讨(一)”在“SSH框架之浅析探讨(二)”中做了用Ajax做的登录验证成功并跳转到主体页面,在“SSH框架之浅析探讨(三)”中做了信息的查询合删除功能。接下来在主体页面就一步一步为大家详细介绍基于SSH框架的小项目的开发吧。注意:添加和编辑比查询和删除稍微复杂一点,我将更仔细为大家介绍。         本内容很适合初学者,能为你巩固基础。
工具/原料

Eclipse,Tomcat,MySql SSH框架的各种jar包

学生信息的添加和编辑
1

既然是添加,那就先弄一个添加页面1、在WEB-INF目录下新建stu-add.jsp页面用作添加用2、在st-add.sjp中引入struts2的标签3、写页面body部分的代码,如图:  

2

先想一个事,学生信息中有一个所属学院,这个所属学院不是我们自己填写的,是从college学院表中取出来让我们选择的,因此我们需要把学院信息先查询出来。然后看我们在stu-list.jsp中添加和编辑都有一个链接“”,在stu-add.jsp中form也有一个action“stu-save”。1、在StudentAction中实现add()这个方法,实现college的查询StudentAction中:public String add() { request.put('college', collegeService.getAll()); return 'input'; }CollegeService中:package com.ssh.service; import java.util.List; import com.ssh.dao.CollegeDao;import com.ssh.entities.College; public class CollegeService {  private CollegeDao collegeDao;  public void setCollegeDao(CollegeDao collegeDao) { this.collegeDao = collegeDao; }  public List getAll(){ List college=collegeDao.getAll(); return college; } }CollegeDao中:package com.ssh.dao; import java.util.List; import org.hibernate.Session;import org.hibernate.SessionFactory; import com.ssh.entities.College; public class CollegeDao {  private SessionFactory sessionFactory;  public void setSessionFactory(SessionFactory sessionFactory) { this.sessionFactory = sessionFactory; }  public Session getSession() { return this.sessionFactory.getCurrentSession(); }  public List getAll(){ String hql='FROM College'; return getSession().createQuery(hql).list(); } }还需要去applicationContext-beans.xml中配置,如下图:

3

运行看效果如图所示:在eclipse中看,那个出生日期栏看不出来,并不是我们写错了,我们复制地址去网页上看:可以看到效果

4

在StudentAction中实现save()方法,添加和编辑我都放在save()方法中实现1、实现ModelDriven和Preparable这两个接口,重写他们的方法:

5

2、去struts.xml中配置一个拦截器,我们不走这个方法:public void prepare() throws Exception { }  false

7

save()方法相应的StudentDao和StudentService代买如下:StudentDao层:public void saveOrUpdate(Student student) { getSession().saveOrUpdate(student); }  public Student get(Integer id) {  return (Student) getSession().get(Student.class, id); }StudentService层:public void saveOrUodate(Student student) { studentDao.saveOrUpdate(student); }  public Student get(Integer id) { return studentDao.get(id); }

8

运行效果如下:

方法/步骤2
1

接下来,我介绍一下如何用ajax去验证做添加时检验输入的用户名是否可用,在这里,只判断用户名是否已存在,没有其他的约束条件,1、在stu-add.jsp页面导入JQuery: 此处引用的这个需要网络才有用,想局网测试那就重新导入自己下载的JQuery,并正确添加路径)

2

2、给submit标签加一个name 3、在页面中加入以下代码: 让我们去StudentAction中实现validateStuName(),用来验证用户名是否可用

3

获取页面传过来的值stuName;private String stuName; public void setStuName(String stuName) {this.stuName = stuName;}

4

实现validateStuName():public String validateStuName() throws Exception {if (studentService.validateStuName(stuName)) {inputStream = new ByteArrayInputStream('1'.getBytes('UTF-8'));} else {inputStream = new ByteArrayInputStream('0'.getBytes('UTF-8'));}return 'ajax-success';}

5

StudentDao层:public Student validateStuName(String stuName) {String hql = 'FROM Student s WHERE s.stuName=?';Query query = getSession().createQuery(hql);return (Student) query.setString(0, stuName).uniqueResult();}

6

StudentService层:public boolean validateStuName(String stuName) {return  studentDao.validateStuName(stuName)==null; }

7

最终运行效果:

推荐信息