SimpleDataValiation 简单的数据校验

在前面几个项目中讲过,怎么去接受一个参数,在我们真正写Java Web程序的时候,我们接受到这个参数之后,一定要检查这个参数符不符合我们的要求,如果不符合我们的要求,我们要反馈回去,要客户重新填写。

1.action类

package com.bjsxt.struts2.user.action;

import com.opensymphony.xwork2.ActionSupport;

public class UserAction extends ActionSupport {
	private String name;
	//add方法判断用户输入的姓名
	public String add() {
		/*登陆不成功的时候,我们该如何向前台传递信息呢?
        这与JSP不同,不能使用request,response往前台传数据,在Struts2里面把成员变量的属性成为field,在struts2里面可以使用addFieldError添加对前台的输出信息
		*/
		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;
	}		
}

2.在JSP页面中该如何获取这些信息呢?

在JSP页面中,我们可以使用Struts2的标签<s:fielderror />来获取提示信息。

注意:一定要在JSP页面引入Struts2的标签:<%@taglib uri="/struts-tags" prefix="s" %>

SimpleDataValiation 简单的数据校验

<?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!
 这种方法拿出来的“提示”前面会有小圆点,解决方案:直接从Value Stack中取值,这样“提示”前面就没有小圆点了。
	<s:fielderror fieldName="name" theme="simple"/>
	<br />
  如下,就是直接从Value Stack中获取提示信息。
	<s:property value="errors.name[0]"/>
	<s:debug></s:debug>
</body>
</html>

 

 

你可能感兴趣的:(simple)