一:struts.xml配置
配置文件中要处理对、错两种情况,分别对应:第三部分中action里的两种返回值。
两种判断结果前往不同页面
<result name="success">
/success.jsp
</result>
<result name="error">
/error.jsp
</result>
二:错误显示error.jsp
错误显示JSP里,需要用到这个标签来负责输出,导入之:
<%@taglib uri="/struts-tags" prefix="s"%>
错误的显示:其中<s:property>能取得具体字符串,用作继续加工
<s:fielderror fieldName="name" />
<s:property value="errors" />
<s:debug/>
<s:debug>是一个超链接,点开后能看到一个错误信息的堆栈列表
<s:fielderror>能取得上述堆栈中的fielderror,这个fielderror是第三部分action中指定的
<s:property>能取得具体的一项三:自定义action
public class MyAction_01 extends ActionSupport
{
private String name;//接收参数
public String add()
{
if(name == null || !name.equals("admin"))
{
this.addFieldError("name","name is null"); //指定错误,addActionError()不太好
this.addFieldError("name","name is not right "); //可以对一个参数,指定增加n个错误
return ERROR;//处理结果
}
else
{
return SUCCESS;//处理结果
}
}
//setter&getter:如果要action接收参数,setter&getter必须正确
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
传参用了上一篇文章说的最简单的传参方法:action还要兼职VO接收数据
判断后,两种结果分别返回不同的值
addfieldError会把指定的错误加到信息堆栈之中,传递给错误页显示