您的位置:首页 > 编程语言 > Java开发

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

2012-04-09 07:51 344 查看
我们在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。这里的ERROR和SUCCESS都是定义在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"/>取得对应的错误信息。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: