日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Struts09---验证框架

發(fā)布時間:2025/3/18 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Struts09---验证框架 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

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()會攔截我們所有的請求 --%><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; //驗證的對象//默認(rèn)public String execute(){System.out.println("默認(rèn)執(zhí)行的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 這個方法就必須先執(zhí)行!* 重寫了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* 如果和全局驗證同時存在 ,優(yōu)先執(zhí)行指定方法名稱的驗證!*/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.創(chuàng)建成功界面! ?省略!

?validate攔截器的底層搜索!

01.找到struts-default.xml文件中的validation對應(yīng)的類

?

02.進入其對應(yīng)的父類

?

?03.繼續(xù)觀察

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的類名! 在本類中就是對應(yīng)UserAction!* ActionName:指的的struts.xml文件中action節(jié)點中 name的屬性值!* */public class UserAction extends ActionSupport{private User user; //驗證的對象//默認(rèn)public String execute(){System.out.println("默認(rèn)執(zhí)行的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>

?

下面的

下面的

?

?

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/xtdxs/p/7097509.html

總結(jié)

以上是生活随笔為你收集整理的Struts09---验证框架的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。