夏飞雪
2016-11-06 00:14
老师漏讲了,小白一个,刚开始学习,求大神指教添加学生信息的action改怎么写。求代码
public String addStudent(){
StudentsDao studentsDao=new StudentsDaoImpl();
studentsDao.addStudent(stu);
return "add_success";
}
前提是运用模型驱动将页面中表单的数据传递到stu之中
具体代码 让action类继承ModelDriven<Students>
同时加上
private Students stu=new Students();
@Override
public Students getModel() {
// TODO Auto-generated method stub
return this.stu;
}
这样就ok (从页面哪里传递过来并没有sid 此时stu对象中sid为null,可在studentdao中通过getsid()方法实现为stu添加sid),最后再将stu对象存入数据库即可!!
<package name="students" namespace="/students" extends="default">
<action name="*_*" class="action.{1}Action" method="{2}">
<result name="query_success">/students/Students_query_success.jsp</result>
<result name="delete_success" type="chain">Students_query</result>
<result name="add_success">/students/Students_add_success.jsp</result>
</action>
</package>
// 使用模型驱动获取从表单提交过来的信息
public String add() throws ParseException {
// 获取前台表单提交的学生姓名
String sname = this.request.getParameter("sname");
// 获取表单提交的学生性别.
String gender = this.request.getParameter("gender");
// 获取表单提交的出生日期,字符串形式.
String birthday = this.request.getParameter("birthday");
// 获取表单提交的地址
String address = this.request.getParameter("address");
// 创建一个Student对象,为其初始化.
Students stu = new Students();
// 初始化姓名
stu.setSname(sname);
// 初始化性别
stu.setGender(gender);
// 将前台表单提交的出生日期(字符串形式)类型,转换为Date类型,因此Student中保存的是Date类型.
SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd");
Date date=simpleDateFormat.parse(birthday);
//初始化出生日期
stu.setBirthday(date);
//初始化地址信息
stu.setAddress(address);
//调用添加学生的方法,把学生对象传进去,学号即主键会在Dao的方法中获取并设置.
//
// System.out.println("stu==========="+stu.toString());
StudentsDAO studentsDAO = new StudentsDAOImpl();
studentsDAO.addStudents(stu);//使用模型驱动获取从表单提交过来的信息
System.out.println("stu==========="+stu.toString());
return "add_success";
}
当然你也可以不用模型驱动的方法 可以像老师那样。用request获取form中属性值,然后再存入具体的students对象中,再调用业务逻辑层,无外乎就是几个set/get方法的调用,这里就不演示了!
使用Struts2+Hibernate开发学生信息管理功能
80701 学习 · 754 问题
相似问题