Struts09---验证框架
生活随笔
收集整理的這篇文章主要介紹了
Struts09---验证框架
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
01.創(chuàng)建登錄界面
<%@ 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()會(huì)攔截我們所有的請(qǐng)求 --%><a href="user/change">切換驗(yàn)證碼</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"><!-- 登錄驗(yàn)證 --><action name="login" class="cn.bdqn.action.UserAction" method="login"><result name="input">/login.jsp</result><result>/success.jsp</result></action><!-- 切換驗(yàn)證碼 --><action name="change" class="cn.bdqn.action.UserAction" method="change"><result>/success.jsp</result></action></package> </struts>03.Action
/*** 驗(yàn)證框架:* 01.局部驗(yàn)證* 02.全局驗(yàn)證 使用 validate* 03.全局驗(yàn)證 使用xml 推薦**** * */public class UserAction extends ActionSupport{private User user; //驗(yàn)證的對(duì)象//默認(rèn)public String execute(){System.out.println("默認(rèn)執(zhí)行的execute");return SUCCESS;}//登錄的方法public String login(){System.out.println("進(jìn)入了login()"); //如果有錯(cuò)誤!if (hasErrors()) {return INPUT; //返回登錄界面 }return SUCCESS;}//切換驗(yàn)證碼public String change(){System.out.println("進(jìn)入了change()"); return SUCCESS;}/*** 全局的驗(yàn)證 只要進(jìn)入了我們的Action 這個(gè)方法就必須先執(zhí)行!* 重寫了ActionSupport類中的validate()@Overridepublic void validate() {System.out.println("進(jìn)入了validate()");if (StringUtils.isBlank(user.getName())) {//用戶名為空返回true!addFieldError("user.name", "用戶名不能為空");}if (StringUtils.isBlank(user.getPassword())) {//密碼為空返回true!addFieldError("user.password", "密碼不能為空");}}*//*** 驗(yàn)證指定的方法* 需要驗(yàn)證的方法名 首字母大寫 !前面加上validate* 如果和全局驗(yàn)證同時(shí)存在 ,優(yōu)先執(zhí)行指定方法名稱的驗(yàn)證!*/public void validateLogin() {System.out.println("進(jìn)入了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.創(chuàng)建成功界面! ?省略!
?validate攔截器的底層搜索!
01.找到struts-default.xml文件中的validation對(duì)應(yīng)的類
?
02.進(jìn)入其對(duì)應(yīng)的父類
?
?03.繼續(xù)觀察
04.得到了 ?方法名變大寫
?
?
使用xml驗(yàn)證框架! 首先保證xml文件和Action在同一個(gè)包中!
package cn.bdqn.action;import java.sql.SQLException;import org.apache.commons.lang3.StringUtils;import cn.bdqn.bean.User;import com.opensymphony.xwork2.ActionSupport; /*** 驗(yàn)證框架:* 01.局部驗(yàn)證* 02.全局驗(yàn)證 使用 validate* 03.全局驗(yàn)證 使用xml 推薦*** 前提驗(yàn)證文件 必須和 action在一個(gè)包中!* 001.驗(yàn)證全局 : ActionClassName-validation.xml* 002.驗(yàn)證指定的: ActionClassName-ActionName-validation.xml* * ActionClassName:就是我們Action的類名! 在本類中就是對(duì)應(yīng)UserAction!* ActionName:指的的struts.xml文件中action節(jié)點(diǎn)中 name的屬性值!* */public class UserAction extends ActionSupport{private User user; //驗(yàn)證的對(duì)象//默認(rèn)public String execute(){System.out.println("默認(rèn)執(zhí)行的execute");return SUCCESS;}//登錄的方法public String login(){System.out.println("進(jìn)入了login()"); //如果有錯(cuò)誤!if (hasErrors()) {return INPUT; //返回登錄界面 }return SUCCESS;}//切換驗(yàn)證碼public String change(){System.out.println("進(jìn)入了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"><!-- 驗(yàn)證文件 必須和 action在一個(gè)包中! --> <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>?
下面的
下面的
?
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/xtdxs/p/7097509.html
總結(jié)
以上是生活随笔為你收集整理的Struts09---验证框架的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: springmvc中action跳转
- 下一篇: Build OpenVSwitch an