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>