(12)简单数据校验:addFieldError

来源:互联网 发布:win10磁盘整理软件 编辑:程序博客网 时间:2024/06/09 20:04

index.jsp:相当于用户登录页面,这里进行简写

  <body>     简单数据校验<a href="user/user_add!add?name='HAHA'">添加用户</a>  </body>

struct.xml

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

UserAction

public class UserAction extends ActionSupport {  //这种接收参数的方式:将传过来的数据(可以是URL数据,或者其他数据),在struct创建对象时,就能付好值,并且已经是转换好的  //但是要注意设置的私有变量不能随意改名,因为传过来的数据是名称固定的。否则不能正常接收    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")){            this.addFieldError("name", "name is error");//Add an Action-level error message to this Action.             //this.addFieldError("name", "name is too long");用来验证map的值是个数组用的。            return "error";        }        return SUCCESS;    }}

user_add_error.jsp

  <font color="red">在WEBRoot下的'property标签中图片对此进行了解释' </font><br/>      User Add Error!      <s:fielderror fieldName="name"></s:fielderror><!-- 在后端要取的名称 ,并不常用因为若不对其加样式,struct会自动添加一个默认的      样式,这是不需要的。所以不常用-->      <br/>      <s:property value="errors"/><!--s:property: 用来取Debug中的Value Stack Contents、Stack Context的内容-->      <!-- 显示{name=[name is error]},用来取属性名对应的属性值,这也是Map类型key=name value=name is error  -->      <br/>       <s:property value="errors.name"/><!-- 用来去map中某个键的值 结果为:[name is error] ,它是一个数组 -->       <br/>       <s:property value="errors.name[0]"/><!-- 取键为name的值(字符串数组)中的第一个值  结果为:name is error          取出的就是一个值,纯数据,可以对其任意加css、html        -->      <s:debug></s:debug>    </body>