Struts2day03Struts2.0提供的数据格式校验

Struts2.0提供的数据格式校验
   js校验:存在被用户篡改的风险
   Struts2.0提供的校验步骤
     1.获得数据:使用Action的属性进行封装
     2.对获得的数据进行判断(方法)
        Struts2.0的ActionSupport提供了validate方法进行数据格式校验
     3.在Struts.xml中配置异常跳转
        在Struts2.0体系中为异常以及错误定义了固定的result
           name=input     //
    显示错误信息:<s:fielderror></s:fielderror>
                   <s:fielderror><s:param>key</s:param></s:fielderror>

  数据格式校验的方法
           js                    Struts2.0
优点: 客户端,效率高            安全
缺点: 容易被篡改                访问服务端,浪费资源
实际开发中:js+Struts2.0

 

1.在com.jsu.struts2.action包中写LoginAction extends ActionSupport 提供了validate方法进行数据格式校验

package com.jsu.struts2.action;

import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport{
	private String userName;
	private String passWord;
	public String execute(){
		return SUCCESS;
	}
	@Override
	public void validate() {
		if(userName==null||userName.equals("")){
			System.out.println("用户名不能为空");
			this.addFieldError("nameError", "用户名不能为空!");
		}
		if(passWord==null||passWord.length()<6){
			System.out.println("密码长度不能小于6位");
			this.addFieldError("pwdError", "密码长度不能小于4位!!");
		}
	}	
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public String getPassWord() {
		return passWord;
	}
	public void setPassWord(String passWord) {
		this.passWord = passWord;
	}
	
}

 2.在struts.xml文件中配置异常跳转

 

<struts>
	<package name="loginDemo" namespace="/" extends="struts-default">
	<action name="login" class="com.jsu.struts2.action.LoginAction">
			<result>/login.jsp</result>
			<result name="input">/login.jsp</result>
		</action>
	</package>
</struts>

 3.在login.jsp页面<s:fielderror></s:fielderror>
                   <s:fielderror><s:param>key</s:param></s:fielderror>显示错误信息

<%@ 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>
    	<style type="text/css">
  		ul{display:inline;color:red;} 
  		li{
  			display:inline;
  			color:red;
  		}
  	</style>
  </head>
  <body>
     <center>
   <form action="login.action" method="post">
   <s:text name="userName"/><input type="text" name="username"/> 
   <s:fielderror><s:param>nameError</s:param></s:fielderror><br>
   <s:text name="passWord"/><input type="text" name="pwd"/>
    <s:fielderror><s:param>pwdError</s:param></s:fielderror><br><br>
   <input type="submit" value="Submit"/>
   </form>
   </center>
  </body>
</html>

你可能感兴趣的:(struts2)