Struts2--简单的数据校验

时间:2023-03-08 20:01:02
Struts2--简单的数据校验

action没有request, response等属性, 无法往前台传信息,

出来一个概念, valuestack: 存放action的属性, 还有各种error等...

<s:property>专门取valuestack和context的属性

jsp显示文件:

使用addFieldError方法和s:fieldError标签简单处理数据校验
<a href="user/user!add?name=a" >添加用户</a>

struts.xml :

 <package name="user" extends="struts-default" namespace="/user">
<action name="user" class="com.bjsxt.struts2.user.action.UserAction">
<result>/user_add_success.jsp</result>
<result name="error">/user_add_error.jsp</result>
</action>
</package>

action:

package com.bjsxt.struts2.user.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 is error");
this.addFieldError("name", "name is too long");
return ERROR;
}
return SUCCESS;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
}
}

user_add_error.jsp如何拿到field error值? 用struts标签

需要在jsp前面加上 <%@taglib uri="/struts-tags" prefix="s" %>

<%@taglib uri="/struts-tags" prefix="s" %>

<body>
User Add Error!
<s:fielderror fieldName="name" theme="simple"/>
<br />
<s:property value="FieldErrors.name[0]"/>
<s:debug></s:debug>
</body>

以上第一种显示方式会被绑架显示格式, 在显示错误信息之前会显示一个.

第二种方式就可以直接提取出来. <s:property value="FieldErrors.name[0]"/>