知识大全 Struts--使用validate方法验证数据
Posted 知
篇首语:社会的善意点燃了希望的火苗,但要让生活火起来,还是要靠自己。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Struts--使用validate方法验证数据相关的知识,希望对你有一定的参考价值。
Struts--使用validate方法验证数据 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
在Struts 中最简单的验证数据的方法是使用validate 我们从ActionSupport类的源代码中可以看到 ActionSupport类实现了一个Validateable接口 这个接口只有一个validate方法 如果Action类实现了这个接口 Struts 在调用execute方法之前首先会调用这个方法 我们可以在validate方法中验证 如果发生错误 可以根据错误的level选择字段级错误 还是动作级错误 并且可使用addFieldError或addActionError加入相应的错误信息 如果存在Action或Field错误 Struts 会返回 input (这个并不用开发人员写 由Struts 自动返回) 如果返回了 input Struts 就不会再调用execute方法了 如果不存在错误信息 Struts 在最后会调用execute方法
这两个add方法和ActionErrors类中的add方法类似 只是add方法的错误信息需要一个ActionMessage对象 比较麻烦 除了加入错误信息外 还可以使用addActionMessage方法加入成功提交后的信息 当提交成功后 可以显示这些信息
以上三个add方法都在ValidationAware接口中定义 并且在ActionSupport类中有一个默认的实现 其实 在ActionSupport类中的实现实际上是调用了ValidationAwareSupport中的相应的方法 也就是这三个add方法是在ValidationAwareSupport类中实现的 代码如下
private final ValidationAwareSupport validationAware = new ValidationAwareSupport();
public void addActionError(String anErrorMessage) validationAware addActionError(anErrorMessage);public void addActionMessage(String aMessage) validationAware addActionMessage(aMessage);public void addFieldError(String fieldName String errorMessage) validationAware addFieldError(fieldName errorMessage);
下面我们来实现一个简单的验证程序 来体验一个validate方法的使用先来在Web根目录建立一个主页面(validate jsp) 代码如下
<%@ page language= java import= java util * pageEncoding= GBK %><%@ taglib prefix= s uri= /struts tags %><><head><title>验证数据 title> head><body><s:actionerror/><s:actionmessage/><s:form action="validate.action" theme="simple">输入内容:<s:textfield name="msg"/><s:fielderror key="msg.hello" /><br/> <s:submit/> s:form> body> >
在上面的代码中,使用了Struts2的tag:
package action;
import javax.servlet..*;
import .opensymphony.xwork2.ActionSupport;import .apache.struts2.interceptor.*;
public class ValidateAction extends ActionSupportprivate String msg;public String execute() System.out.println(SUCCESS);return SUCCESS;public void validate()if(!msg.equalsIgnoreCase("hello"))System.out.println(INPUT);this.addFieldError("msg.hello", "必须输入hello!");this.addActionError("处理动作失败!");elsethis.addActionMessage("提交成功");public String getMsg()return msg;public void setMsg(String msg)this.msg = msg;
大家从上面的代码可以看出,Field错误需要一个key(一般用来表示是哪一个属性出的错误),而Action错误和Action消息只要提供一个信息字符串就可以了。最后来配置一下这个Action,代码如下: <package name="demo" extends="struts-default"><action name="validate" ><result name="success">/error/validate.jsp result><result name="input">/error/validate.jsp result> action> package> 假设应用程序的上下文路径为demo,则可通过如下的URL来测试程序:
我们还可以使用ValidationAware接口的其他方法(由ValidationAwareSupport类实现)获得或设置字段错误信息、动作错误信息以及动作消息。如hasActionErrors方法判断是否存在动作层的错误,getFieldErrors获得字段错误信息(一个Map对象)。下面是ValidationAware接口提供的所有的方法:
package .opensymphony.xwork2;
import java.util.Collection;import java.util.Map;
public interface ValidationAwarevoid setActionErrors(Collection errorMessages);Collection getActionErrors();
void setActionMessages(Collection messages);Collection getActionMessages();void setFieldErrors(Map errorMap);Map getFieldErrors();void addActionError(String anErrorMessage);void addActionMessage(String aMessage);void addFieldError(String fieldName, String errorMessage);boolean hasActionErrors();boolean hasActionMessages();boolean hasErrors();boolean hasFieldErrors();
cha138/Article/program/Java/ky/201311/28260相关参考
Struts2教程5:使用Validation框架验证数据 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一
PHPWeb开发学习实录:使用操作符验证表单数据 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 Struts--使用validate方法验证数据。
Struts--使用validate方法验证数据。 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
Java中使用正则表达式验证本地化数据 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!数据验证是编写
PHP网络编程:表单数据的有效性验证[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 
详解ASP.NETMVCPRG数据验证 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 我们这里将
知识大全 Struts从零开始五、Struts中验证数据实例[8]
Struts从零开始五、Struts中验证数据实例[8] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下
知识大全 Struts从零开始五、Struts中验证数据实例[7]
Struts从零开始五、Struts中验证数据实例[7] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下
知识大全 Struts从零开始五、Struts中验证数据实例[6]
Struts从零开始五、Struts中验证数据实例[6] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下