struts.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.devMode" value="true"></constant> <package name="user" extends="struts-default" namespace="/user"> <action name="user" class="com.pegasus.web.UserAction"> <result>/user_add_success.jsp</result> <result name="error">/user_add_error.jsp</result> </action> </package> </struts>
user_add_error.jsp
<?xml version="1.0" encoding="GB18030" ?>
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<%@taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030" />
<title>Insert title here</title>
</head>
<body>
User Add Error!
<br />
--------------------------
<s:fielderror fieldName="name" theme="simple"/>
<s:fielderror fieldName="name" theme="simple"/>
--------------------------
<s:fielderror fieldName="age" theme="simple"/>
--------------------------
<br />
<s:property value="errors.name[0]"/><br/>
<s:property value="errors.age"/>
<s:debug></s:debug>
</body>
</html>
UserAction.java
package com.pegasus.web;
import com.opensymphony.xwork2.ActionSupport;
public class UserAction extends ActionSupport {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String add() {
if (name == null || !name.equals("admin")) {
//设定FieldError,结果为数组的形式.
//在JSP页面中,通过<s:fielderror fieldName="name"/>打印出所设定的值
//如果要得到其中的某个值,可以通过[*]来得到,超过了数组的范围则不显示
//eg.<s:property value="errors.name[1]"/>
//如果在JSP中没有指定序号,
//<s:property value="errors.name[1]"/>
//则在页面中的结果为
//[name is error, name is too long]
this.addFieldError("name", "name is error");
this.addFieldError("name", "name is too long");
//可以设定多个数组
//<s:fielderror fieldName="age"/>
this.addFieldError("age", "no age");
return ERROR;
}
return SUCCESS;
}
}