上QQ阅读APP看书,第一时间看更新
16.7 完成添加用户模块
新建用户详细信息显示页,页面中包含一个用来输入用户信息的表单,代码如下所示。
<%@page contentType="text/html; charset=gb2312"%> <%@taglib prefix="s" uri="/struts-tags"%> <html> <head> <title>添加用户</title> </head> <body> <center> <h2>添加用户</h2> <s:form action="add"> <s:actionerror/> <s:textfield label="用户名" name="username"></s:textfield> <s:password label="密码" name="password"></s:password> <s:textfield label="年龄" name="age"></s:textfield> <s:textfield label="生日" name="birth"></s:textfield> <s:textfield label="邮箱地址" name="email"></s:textfield> <s:submit value="提交"></s:submit> <s:reset value="重置"></s:reset> </s:form> </center> </body> </html>
16.7.2 创建用户添加控制器
新建业务控制器AddAction,该Action负责接受用户添加页提交的用户信息,并通过业务逻辑组件保存用户信息,代码如下所示。
package net.hncu.action; import java.util.Date; import net.hncu.po.User; import net.hncu.service.UserService; import com.opensymphony.xwork2.ActionSupport; public class AddAction extends ActionSupport{ //用户名 private String username; //密码 private String password; //年龄 private int age; //生日 private Date birth; //email地址 private String email; //业务逻辑组件 private UserService userService; //设置业务逻辑组件 public void setUserService(UserService userService) { this.userService = userService; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Date getBirth() { return birth; } public void setBirth(Date birth) { this.birth = birth; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String execute() throws Exception { //将接受的参数设置到User实例中 User user = new User(); user.setUsername(username); user.setPassword(password); user.setAge(age); user.setBirth(birth); user.setEmail(email); //调用业务逻辑组件保存该用户 if(userService.addUser(user)){ return SUCCESS; }else{ addActionError("添加用户失败!"); return ERROR; } } }
16.7.3 配置用户添加控制器
在Spring配置文件中配置业务控制器addAction,并为其注入业务逻辑组件,代码如下所示。
<! -- 创建addAction实例 --> <bean id="addAction" class="net.hncu.action.AddAction" scope="prototype"> <property name="userService" ref="userService"></property> </bean>
在“struts.xml”文件中配置addAction,并定义处理结果与视图资源之间的关系,代码如下所示。
<action name="add" class="addAction">
<! -- 定义处理结果与视图资源之间的关系-->
<result name="success" type="redirect">/showAll.action</result>
<result name="input">/add.jsp</result>
<result name="error">/add.jsp</result>
</action>
16.7.4 创建校验规则文件
新建校验规则文件,其中包含如下输入校验规则。
(1)用户名、密码、确认密码必须输入。
(2)用户名只能是数字或者字母,长度在6~20之间。
(3)密码、确认密码必须是数字或者字母,长度在6~20之间。
(4)密码和确认密码必须相同。
(5)年龄必须为整数而且必须是有效的年龄值。
(6)出生日期必须为正确的日期格式如1988-01-03,而且只能在1900-1-1~2010-1-1之间。
(7)邮箱地址必须为合法的邮箱地址。
通过以上校验规则,编写校验规则文件,代码如下所示。
<? xml version="1.0" encoding="UTF-8"? > <! DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"> <validators> <validator type="requiredstring"> <param name="fieldName">username</param> <param name="trim">true</param> <message>必须输入用户名</message> </validator> <validator type="regex"> <param name="fieldName">username</param> <param name="expression"><! [CDATA[(\w{6,20})]]></param> <message>用户名长度必须在6~20之间</message> </validator> <validator type="requiredstring"> <param name="fieldName">password</param> <param name="trim">true</param> <message>必须输入密码</message> </validator> <validator type="regex"> <param name="fieldName">password</param> <param name="expression"><! [CDATA[(\w{6,20})]]></param> <message>密码长度必须在6~20之间</message> </validator> <validator type="int"> <param name="fieldName">age</param> <param name="min">1</param> <param name="max">120</param> <message>年龄必须在${min}~${max}之间</message> </validator> <validator type="date"> <param name="fieldName">birth</param> <param name="min">1900-01-01</param> <param name="max">2010-01-01</param> <message>出生日期必须在1900-01-01~2010-01-01之间</message> </validator> <validator type="email"> <param name="fieldName">email</param> <message>请输入有效的电子邮箱地址</message> </validator> </validators>
16.7.5 测试添加用户
在用户列表中单击“添加新用户”链接,页面将跳转到用户添加页,如图16.4所示。
在页面中输入需要添加的用户信息,单击“提交”按钮进行添加,如图16.5所示。
图16.4 添加注册用户页
图16.5 填写用户信息
用户添加完成后,页面将跳转回用户列表页,如图16.6所示。由图16.6可以看出,用户信息已成功添加。
图16.6 用户列表页