Struts09---验证框架
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                Struts09---验证框架
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                01.創建登錄界面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %><%@ taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><base href="<%=basePath%>"><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"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><s:form action="user/login" method="post"><s:textfield name="user.name" label="姓名"/><s:textfield name="user.password" label="密碼"/><s:submit value="登錄"/> <%-- 全局的validate()會攔截我們所有的請求 --%><a href="user/change">切換驗證碼</a></s:form></body> </html>02.struts.xml文件
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"> <struts><package name="user" namespace="/user" extends="default"><!-- 登錄驗證 --><action name="login" class="cn.bdqn.action.UserAction" method="login"><result name="input">/login.jsp</result><result>/success.jsp</result></action><!-- 切換驗證碼 --><action name="change" class="cn.bdqn.action.UserAction" method="change"><result>/success.jsp</result></action></package> </struts>03.Action
/*** 驗證框架:* 01.局部驗證* 02.全局驗證 使用 validate* 03.全局驗證 使用xml 推薦**** * */public class UserAction extends ActionSupport{private User user; //驗證的對象//默認public String execute(){System.out.println("默認執行的execute");return SUCCESS;}//登錄的方法public String login(){System.out.println("進入了login()"); //如果有錯誤!if (hasErrors()) {return INPUT; //返回登錄界面 }return SUCCESS;}//切換驗證碼public String change(){System.out.println("進入了change()"); return SUCCESS;}/*** 全局的驗證 只要進入了我們的Action 這個方法就必須先執行!* 重寫了ActionSupport類中的validate()@Overridepublic void validate() {System.out.println("進入了validate()");if (StringUtils.isBlank(user.getName())) {//用戶名為空返回true!addFieldError("user.name", "用戶名不能為空");}if (StringUtils.isBlank(user.getPassword())) {//密碼為空返回true!addFieldError("user.password", "密碼不能為空");}}*//*** 驗證指定的方法* 需要驗證的方法名 首字母大寫 !前面加上validate* 如果和全局驗證同時存在 ,優先執行指定方法名稱的驗證!*/public void validateLogin() {System.out.println("進入了validateLogin()");if (StringUtils.isBlank(user.getName())) {//用戶名為空返回true!addFieldError("user.name", "用戶名不能為空");}if (StringUtils.isBlank(user.getPassword())) {//密碼為空返回true!addFieldError("user.password", "密碼不能為空");}}public User getUser() {return user;}public void setUser(User user) {this.user = user;}}04.創建成功界面! ?省略!
?validate攔截器的底層搜索!
01.找到struts-default.xml文件中的validation對應的類
?
02.進入其對應的父類
?
?03.繼續觀察
04.得到了 ?方法名變大寫
?
?
使用xml驗證框架! 首先保證xml文件和Action在同一個包中!
package cn.bdqn.action;import java.sql.SQLException;import org.apache.commons.lang3.StringUtils;import cn.bdqn.bean.User;import com.opensymphony.xwork2.ActionSupport; /*** 驗證框架:* 01.局部驗證* 02.全局驗證 使用 validate* 03.全局驗證 使用xml 推薦*** 前提驗證文件 必須和 action在一個包中!* 001.驗證全局 : ActionClassName-validation.xml* 002.驗證指定的: ActionClassName-ActionName-validation.xml* * ActionClassName:就是我們Action的類名! 在本類中就是對應UserAction!* ActionName:指的的struts.xml文件中action節點中 name的屬性值!* */public class UserAction extends ActionSupport{private User user; //驗證的對象//默認public String execute(){System.out.println("默認執行的execute");return SUCCESS;}//登錄的方法public String login(){System.out.println("進入了login()"); //如果有錯誤!if (hasErrors()) {return INPUT; //返回登錄界面 }return SUCCESS;}//切換驗證碼public String change(){System.out.println("進入了change()"); return SUCCESS;}public User getUser() {return user;}public void setUser(User user) {this.user = user;}} <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE validators PUBLIC"-//Apache Struts//XWork Validator 1.0.3//EN""http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd"><!-- 驗證文件 必須和 action在一個包中! --> <validators><field name="user.name"><field-validator type="requiredstring"><!--用戶名不能為空 --><param name="trim">true</param><message><![CDATA[用戶名不能為空!!!XML]]></message></field-validator><field-validator type="stringlength"><!--用戶名的長度--><param name="minLength">5</param><param name="maxLength">10</param><message><![CDATA[用戶名必須在5--10之間!!!XML]]></message></field-validator></field><field name="user.password"><field-validator type="requiredstring"><!--密碼不能為空 --><param name="trim">true</param><message><![CDATA[密碼不能為空!!!XML]]></message></field-validator><field-validator type="regex"><!--密碼的長度--><param name="trim">true</param><param name="regex"><![CDATA[^[0-9a-zA-Z]{5,10}$]]></param><message><![CDATA[密碼必須在5--10之間!!!XML]]></message></field-validator></field></validators>?
下面的
下面的
?
?
?
?
轉載于:https://www.cnblogs.com/xtdxs/p/7097509.html
總結
以上是生活随笔為你收集整理的Struts09---验证框架的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: springmvc中action跳转
- 下一篇: Build OpenVSwitch an
