道听途说Struts2之10:简单的数据验证

         我们在Action中接收了参数,一般情况下可能参数并不是正确的,所以需要一些验证。在Action中验证数据其实也是很简单的,和我们平时写代码没什么区别。首先看一个代码:

package com.mengxiangyue.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;
	}

}


        在这段代码中,如果错误就返回ERROR,如果正确就返回SUCCESS。这里的ERRORSUCCESS都是定义在ActionSupport中的字符串。里面的this.addFieldError("name", "name is error")这个表示将错误信息添加到struts的值栈中,值栈以后再说。我们就可以在jsp页面中取得对应的值。

         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" />
    <package name="user" extends="struts-default" namespace="/user">
        <action name="user" class="com.mengxiangyue.struts2.user.action.UserAction">
            <result>/user_add_success.jsp</result>
            <result name="error">/user_add_error.jsp</result>
        </action>
    </package>
</struts>

         在这里定义了两个result一个叫success一个叫error,对应于action执行的结果。在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!
	<s:fielderror fieldName="name" theme="simple"/>
</body>
</html>

 

         这里我们需要使用struts的标签,所以需要在开始加上:<%@taglib uri="/struts-tags" prefix="s" %>,然后在后面使用struts的标签<s:fielderrorfieldName="name" theme="simple"/>取得对应的错误信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值