strut2模型参数
将表单传递过来的参数自动封装成一个javabean对象,这过程叫模型参数。
package yzr.ValidateJavaBean;
import yzr.ValidateJavaBean.User;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.sun.net.httpserver.Authenticator.Success;
public class RegisterAction extends ActionSupport {
private User user;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public String RegisterMethod() throws Exception{
ActionContext.getContext().put("username",user.getUsername());
ActionContext.getContext().put("password",user.getPassword());
ActionContext.getContext().put("email",user.getEmail());
return SUCCESS;
}
}
User.java
package yzr.ValidateJavaBean;
public class User {
public User(){}
private String username;
private String password;
private String email;
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 String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
表单页面:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>注册</title>
</head>
<body>
<s:fielderror />
<form id="registerForm" action="${ pageContext.request.contextPath}/RegisterRequest" method="POST">
<table>
<tr>
<td>Name:</td>
<td><input type="text" id="username" name="user.username" /></td>
</tr>
<tr>
<td>PassWord:</td>
<td><input type="text" id="password" name="user.password" /></td>
</tr>
<tr>
<td>EMail:</td>
<td><input type="email" id="email" name="user.email" /></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Login"/></td>
</tr>
</table>
</form>
</body>
</html>
注意:javabean对象的属性必须提供get和set访问;
表单中要使用对象点属性的方式赋值name属性;
struts2对模型的验证
使用visitor : 专用于验证JavaBean 对象在Action类的同路径下创建验证配置文件:
Action类+action请求名+validation.xml的格式:
例如 RegisterAction-RegisterRequest-validation.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//Apache Struts//XWork Validator 1.0.3//EN"
"http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
<validators>
<field name="user">
<field-validator type="visitor">
<message></message>
</field-validator>
</field>
</validators>
在javabean对象的同路径下创建验证配置文件:
javabean对象类名+validation.xml:
例如 User-validation.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//Apache Struts//XWork Validator 1.0.3//EN"
"http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
<validators>
<field name="username">
<field-validator type="requiredstring">
<message>姓名必填</message>
</field-validator>
</field>
<field name="password">
<field-validator type="requiredstring">
<message>密码必填</message>
</field-validator>
<field-validator type="regex">
<param name="expression">^[0-9]{6}$</param>
<message>密码必须是6位数字</message>
</field-validator>
</field>
<field name="email">
<field-validator type="requiredstring">
<message>邮箱必填</message>
</field-validator>
<field-validator type="email">
<message>邮箱必须符合合法的格式</message>
</field-validator>
</field>
</validators>
在浏览器运行查看验证是否生效: