`
peigang
  • 浏览: 166868 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Struts2应用开发详解--16、对Action中的方法进行校验

    博客分类:
  • JAVA
阅读更多

struts2的校验可以用两种方式实现:

一、java代码实现:

以action类实现ActionSupport的方式实现代码校验,struts框架会调用重写的validate()方法对所有的action方法进行校验过滤。代码片段如下:

package test;

 

import com.opensymphony.xwork2.ActionSupport;

 

public class ValidateAction extends ActionSupport {

 private Long id;
 private String name;
 
 public Long getId() {
  return id;
 }

 public void setId(Long id) {
  this.id = id;
 }

 public String getName() {
  return name;
 }

 public void setName(String name) {
  this.name = name;
 }

 public String test(){
  return "success";
 }
 
 public String execute(){
  return "success";
 }
 
 public void validate() {
  // TODO Auto-generated method stub
  if(id == null){
   this.addFieldError("id", "id不能为空");
  }
  if(name == null || name.trim().length() == 0){
   this.addFieldError("name", "name不能为空");
  }
 }

 

jsp页面片段如下:

<s:fielderror />
 <form action="/validate.action">
  <input type="text" name="id" /></br>
  <input type="text" name="name" /></br>
  <input type="submit" value="提交"/>
 </form>

 其中<s:fielderror />负责将validate()方法中的错误信息列表进行输出,这样就完成了整个验证流程。

如果仅仅只需要实现对execute()方法进行验证,那么只需要实现validateExecute()方法。框架会自动绑定execute()方法进行验证,其他方法则不进行验证。

 

二、xml配置文件实现:

xml的验证需要为action类建立对应的.xml配置文件,文件命名格式为ActionClassName-validation.xml。以前文所创建的类为例则需要建立ValidateAction-validation.xml文件。

配置文件如下:

<!DOCTYPE validators PUBLIC
        "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
        "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">

<validators>
    <field name="id">
        <field-validator type="requiredstring">
            <message key="requiredstring"/>
        </field-validator>
    </field>
    <field name="name">
        <field-validator type="requiredstring">
            <message key="requiredstring"/>
        </field-validator>
    </field>
</validators>

如上配置可以完成前文中validate()方法的实现,其他代码如jsp文件和struts.xml配置则完全相同。

如需实现对action中指定方法的xml校验则需要建立ActionClassName-ActionName-validation.xml的配置文件,其中ActonName为struts.xml中的action的名称。如:

<!-- 首先配置通配符实现url制定方法调用 -->
        <action name="validate_*" class="test.ValidateAction" method="{1}">
           <result name="success">/page/hello.jsp</result>
        </action>

 

要对test()方法进行校验,校验的文件名则为:ValidateAction-validate_test-validation.xml 

对execute()方法进行校验,校验的文件名则为:ValidateAction-validate_execute-validation.xml

这样变实现了对不同action 方法绑定校验。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics