首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

struts第十天-对action中的全部方法进行输入校验

2012-10-18 
struts第十天-----对action中的所有方法进行输入校验?xml version1.0 encodingUTF-8 ?!DOCTYPE s

struts第十天-----对action中的所有方法进行输入校验

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
 <constant name="struts.i18n.encoding" value="utf-8"/>
 <!-- <constant name="struts.enable.DynamicMethodInvocation" value="false"/> -->
 <constant name="struts.action.extension" value="do,action"/>
 <constant name="struts.multipart.maxSize" value="10701096"/>
 <package name="person" namespace="/person" extends="struts-default"> 
  <action name="manage_*" class="com.isoftstone.study.PersonAction" method="{1}"> 
   <result name="input">/index.jsp</result>  
   <result name="message">/WEB-INF/page/message.jsp</result>    
  </action>  
 </package> 
</struts>  

package com.isoftstone.study;

import java.util.regex.Pattern;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class PersonAction extends ActionSupport{
 private String username;
 private String mobile;
 public String getUsername() {
  return username;
 }
 public void setUsername(String username) {
  this.username = username;
 }
 public String getMobile() {
  return mobile;
 }
 public void setMobile(String mobile) {
  this.mobile = mobile;
 }
 public String update(){
  ActionContext.getContext().put("message", "更新成功");
  return "message";
 }
 public String save(){
  ActionContext.getContext().put("message", "保存成功");
  return "message";
 }
 @Override
 public void validate(){//会对该action中的所有方法进行校验
  if(this.username==null||"".equals(username.trim())){
   this.addFieldError("username", "用户名不能为空");
  }
  if(this.mobile==null||"".equals(mobile.trim())){
   this.addFieldError("mobile", "手机号不能为空");
  }else{
   if(!Pattern.compile("^1[358]\\d{9}$").matcher(this.mobile).matches()){
    this.addFieldError("mobile", "手机格式不正确");
   }
  }
 } 

}

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>   
    <title>My JSP 'index.jsp' starting page</title>
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0">   
  </head>
  <body>    
    <s:fielderror/>
        <form action="<%=request.getContextPath() %>/person/manage_save.do"} method="post">
     用户名:<input name="username" type="text"/>不能为空<br/>
     手机号:<input name="mobile" type="text"/>必能为空,要符合手机的格式<br/>
     <input value="提交" type="submit"/>
    </form>
  </body>
</html>

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>  
    <title>结果</title>   
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0"> 
  </head> 
  <body>
    ${message}<br/>    
  </body>
</html>

 

如果想对action中的指定方法进行输入校验,只需要validateXxx()就行了。

package com.isoftstone.study;

import java.util.regex.Pattern;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class PersonAction extends ActionSupport{
 private String username;
 private String mobile;
 public String getUsername() {
  return username;
 }
 public void setUsername(String username) {
  this.username = username;
 }
 public String getMobile() {
  return mobile;
 }
 public void setMobile(String mobile) {
  this.mobile = mobile;
 }
 public String update(){
  ActionContext.getContext().put("message", "更新成功");
  return "message";
 }
 public String save(){
  ActionContext.getContext().put("message", "保存成功");
  return "message";
 }
// @Override
// public void validate(){//会对该action中的所有方法进行校验
//  if(this.username==null||"".equals(username.trim())){
//   this.addFieldError("username", "用户名不能为空");
//  }
//  if(this.mobile==null||"".equals(mobile.trim())){
//   this.addFieldError("mobile", "手机号不能为空");
//  }else{
//   if(!Pattern.compile("^1[358]\\d{9}$").matcher(this.mobile).matches()){
//    this.addFieldError("mobile", "手机格式不正确");
//   }
//  }
// }
// @Override
 public void validateUpdate(){//会对该action中的所有方法进行校验
  if(this.username==null||"".equals(username.trim())){
   this.addFieldError("username", "用户名不能为空");
  }
  if(this.mobile==null||"".equals(mobile.trim())){
   this.addFieldError("mobile", "手机号不能为空");
  }else{
   if(!Pattern.compile("^1[358]\\d{9}$").matcher(this.mobile).matches()){
    this.addFieldError("mobile", "手机格式不正确");
   }
  }
 }

 

如果校验真的是没有问题的,那么还是总是跳到input视图,那么就是类型转换器的问题。
 

}

 


 


 

 

热点排行