简单数据验证 :
UserAction:
package simpledataviliaction.action;
import com.opensymphony.xwork2.ActionSupport;
public class UserAction extends ActionSupport {
private String name;
public String add() {
if (name == null || !name.equals("admin")) {
// 添加对于属性校验的错误信息:
this.addFieldError("name", "name 是错误的");
return ERROR;
}
return "success";
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
struts.xml配置:
<action name="user_shujuyanzheng" class="simpledataviliaction.action.UserAction">
<result name="success">
/user_add_success.jsp;
</result>
<result name="error">
/user_add_error.jsp;
</result>
</action>
user_add_error.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!--导入struts标签库,位于架包的META-INF下的struts--tags.tld-->
<%@taglib uri="/struts-tags" prefix="s" %>
<html>
<head>
<base href="<%=basePath%>">
</head>
<body>
user add is error <br>
<!-- 把userAction的addFieldError取出,fieldName对应名字 -->
<s:fielderror fieldName="name" theme="simple"/>
</body>
</html>
运行:
http://localhost:8080/struts2_0100_introduction/front/user_shujuyanzheng!add?name=a
name传递的参数不为admin,即跳到error的result,转到对应的user_add_error.jsp,注意:addFieldError方法,jsp导入struts标签库,使用标签(fielderror)跳到校验信息找到参数名与参数值并显示到user_add_error.jsp
修改user_add_error.jsp:
<body>
user add is error <br>
<!-- 把userAction的addFieldError取出,fieldName对应名字 -->
<s:fielderror fieldName="name" theme="simple"/>
<br/>
<!-- s:property取value stack里面的值 -->
<!-- value属性值指向debug里面的Property Name -->
<s:property value="errors"></s:property>
<!-- 默认debug链接 -->
<s:debug>
</s:debug>
</body>
浏览器运行后:
注:可以添加多条错误提示信息:
UserAction:
public String add() {
if (name == null || !name.equals("admin")) {
// 添加对于属性校验的错误信息:
this.addFieldError("name", "name 是错误的");
this.addFieldError("name", "name 命名不规范");
return ERROR;
}
return "success";
}
运行后: