struts2验证框架——validate()方法


如果你对客户端的js校验不放心的话,不妨使用服务器端校验。该校验是无法绕过的。struts2提供的验证框架可以实现这种功能。struts2提供两种校验方法:一种是写XML校验。另外一种是在action中写validate方法。这个例子将会用到后者。 
1、包结构: 
struts2验证框架——validate()方法_第1张图片 

2、源代码: 
UserAction.java 
Java代码   收藏代码
  1. package action;  
  2.   
  3. import com.opensymphony.xwork2.ActionSupport;  
  4.   
  5. public class UserAction extends ActionSupport{  
  6.     private String name;  
  7.     private String password;  
  8.     public String getName() {  
  9.         return name;  
  10.     }  
  11.     public void setName(String name) {  
  12.         this.name = name;  
  13.     }  
  14.     public String getPassword() {  
  15.         return password;  
  16.     }  
  17.     public void setPassword(String password) {  
  18.         this.password = password;  
  19.     }  
  20.     public void validateSave(){  
  21.         if("whatisjava".equals(name)){  
  22.             this.addFieldError("dataErr""该名称已存在");  
  23.         }  
  24.     }  
  25.     public String save(){  
  26.         System.out.println("save");  
  27.         return "success";  
  28.     }  
  29. }  

struts.xml: 
Xml代码   收藏代码
  1. xml version="1.0" encoding="UTF-8" ?>  
  2. >  
  3. <struts>  
  4.     <package name="struts" extends="struts-default" namespace="/">  
  5.         <action name="save" class="action.UserAction" method="save">  
  6.             <result name="success">index.jspresult>  
  7.             <result name="input">index.jspresult>  
  8.         action>  
  9.     package>  
  10. struts>      

index.jsp: 
Html代码   收藏代码
  1. <%@ page pageEncoding="UTF-8"%>  
  2. <%@taglib prefix="s" uri="/struts-tags"%>  
  3. >  
  4. <html>  
  5.     <head>  
  6.         <title>validatetitle>  
  7.     head>  
  8.   
  9.     <body>  
  10.         <h1>  
  11.             tstruts2的validate()方法  
  12.         h1>  
  13.         <li>  
  14.             继承ActionSupport类  
  15.         li>  
  16.         <li>  
  17.             遵循以下命名规则:validate+方法名。  
  18.             <br>  
  19.                例如:validateSave(); save()为页面要访问的action执行的方法名称。  
  20.         li>  
  21.         <li>  
  22.             在校验方法中添加验证信息:this.addFieldError("dataErr", "该记录已存在。");  
  23.         li>  
  24.         <li>  
  25.             页面上添加struts2标签:s:fielderror key="dataErr"  
  26.                其中dataErr为校验方法中的fieldError名。  
  27.         li>  
  28.         <hr>  
  29.         下面做一个测试,当用户输入的用户名为whatisjava时候将视为数据已存在。表单不会被提交。  
  30.         <br />  
  31.         <form action="save.action">  
  32.             <s:fielderror key="dataErr">s:fielderror>  
  33.             <br>  
  34.             用户名:  
  35.             <input type="text" name="name">  
  36.             <br>  
  37.             密  码:  
  38.             <input type="password" name="password">  
  39.             <br>  
  40.             <button type="submit">  
  41.                 提交  
  42.             button>  
  43.         form>  
  44.     body>  
  45. html>  

你可能感兴趣的:(Struts)