• Struts2 对Action中所有方法进行输入校验、单个方法进行校验


    index.jsp:

     <body>
      		<s:fielderror />
        	<form action="${pageContext.request.contextPath }/cn/person_add.do" method="post">
        		<table>
        			<tr>
        				<td>用户名:</td>
        				<td><input name="userName"  type="text" value="${userName }" /></td>
        			</tr>
        			<tr>
        				<td>手机号:</td>
        				<td><input name="phone"  type="text"  value="${phone }"  /></td>
        			</tr>
        			<tr>
        				<td colspan="2"><input type="submit" value="登录" /></td>
        			</tr>
        		</table>
        	</form>
      </body>


    action:

    public class PersonAction extends ActionSupport {
    	private static final long serialVersionUID = 1L;
    	private String userName;
    	private String phone;
    	private String message;
    
    	public String add(){
    		message="添加成功";
    		return "message";
    	}
    	
    	public String update(){
    		message="更新成功";
    		return "message";
    	}
    	
    	@Override
    	public void validate() {
    		if(userName==null || userName.trim().equals("")){
    			// 当校验失败时,通过addFieldError为字段添加校验失败信息
    			// 在页面中通过 <s:fielderror /> 显示失败信息
    			// 当校验失败以后,Struts会默认调用一个名为input的result所以需要在Struts的Action里面配置input
    			addFieldError("userName", "用户名不能为空");
    		}
    		if(phone==null || phone.trim().equals("")){
    			addFieldError("phone", "手机号不能为空");
    		}else{
    			if(!Pattern.compile("^1[358]\d{9}$").matcher(phone).matches()){
    				addFieldError("phone", "手机号格式不正确");
    			}
    		}
    	}
    	
    	public String getUserName() {
    		return userName;
    	}
    	public void setUserName(String userName) {
    		this.userName = userName;
    	}
    	
    	public String getPhone() {
    		return phone;
    	}
    
    	public void setPhone(String phone) {
    		this.phone = phone;
    	}
    
    	public String getMessage() {
    		return message;
    	}
    
    	public void setMessage(String message) {
    		this.message = message;
    	}
    }

    struts.xml

    <struts>
    <constant name="struts.118n.encoding" value="UTF-8"></constant>
    	<constant name="struts.action.extension" value="do"></constant>
    	<package name="mainPackage" namespace="/cn" extends="struts-default">
    		<global-results>
    			<result name="message">/WEB-INF/message.jsp</result>
    		</global-results>
    		<action name="person_*" class="cn.person.PersonAction" method="{1}" >
    			<result name="input">/index.jsp</result>
    		</action>
    	</package>
    </struts>    
    


    验证:


    对单个方法进行校验

    对单个方法进行校验更简单,只需要将重 写的ActionSupport的validate  改成  validateXxxx()即可,即validate+要校验的方法名称(首字母大写)例:

    	public void validateUpdate() {
    		if(userName==null || userName.trim().equals("")){
    			// 当校验失败时,通过addFieldError为字段添加校验失败信息
    			// 在页面中通过 <s:fielderror /> 显示失败信息
    			// 当校验失败以后,Struts会默认调用一个名为input的result所以需要在Struts的Action里面配置input
    			addFieldError("userName", "用户名不能为空");
    		}
    		if(phone==null || phone.trim().equals("")){
    			addFieldError("phone", "手机号不能为空");
    		}else{
    			if(!Pattern.compile("^1[358]\d{9}$").matcher(phone).matches()){
    				addFieldError("phone", "手机号格式不正确");
    			}
    		}
    	}






  • 相关阅读:
    Python入门--14--字典
    Python入门--13--爬虫一
    Python入门--13--递归
    Python入门--12--函数与变量
    Python入门--11--自定义函数
    Python入门--10--序列
    mysql 删除重复记录
    Java 不可编辑的Map
    mysql left join
    mysql 超过5名学生的课
  • 原文地址:https://www.cnblogs.com/raphael5200/p/5114764.html
Copyright © 2020-2023  润新知