Struts2之数据校验validate()函数
讲解:validate()是自动执行的,只有在执行成功是才会继续执行execute()。
validate()的执行时间是getXXX()执行完毕后。
实验实现过程
1)创建一个web项目
2) 将Struts2类包中的以下jar文件加入到工程的构建路径或拷贝到项目的lib目录中
3)在web.xml文件中设置核心控制器
4)创建动作类
5)创建struts.xml,在其中定义动作包、动作等内容,保存目录为src
6)分别创建登录和欢迎JSP页面,保存目录为WebRoot
代码:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 package com.sise.lab2.action; 2 3 import com.opensymphony.xwork2.ActionSupport; 4 5 public class LoginAction extends ActionSupport{ 6 private String username; 7 private String password; 8 public String getUsername() { 9 return username; 10 } 11 public void setUsername(String username) { 12 this.username = username; 13 } 14 public String getPassword() { 15 return password; 16 } 17 public void setPassword(String password) { 18 this.password = password; 19 } 20 public String execute() throws Exception{ 21 if("ye".equals(username.trim()) && "ye".equals(password.trim())){ 22 return SUCCESS; 23 } 24 else{ 25 addFieldError("username","用户名或密码错误!!"); 26 return LOGIN; 27 } 28 } 29 public void validate(){ 30 if(null==username||"".equals(username.trim())) 31 addFieldError("username","用户名必须输入"); 32 if(null==password||"".equals(password.trim())) 33 addFieldError("password","密码必须输入"); 34 } 35 }
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE struts PUBLIC 3 "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" 4 "http://struts.apache.org/dtds/struts-2.3.dtd"> 5 6 <struts> 7 8 9 <package name="javaII" extends="struts-default" namespace="/action"> 10 <!-- lab1 --> 11 <action name="login" class="com.sise.lab1.action.LoginAction"> 12 <result name="suc">/welcome.jsp</result> 13 <result name="login">/index.jsp</result> 14 </action> 15 <!-- lab2 --> 16 <action name="login2" class="com.sise.lab2.action.LoginAction" > 17 <result name="input">/lab2/login.jsp</result> 18 <result name="login">/lab2/login.jsp</result> 19 <result name="success">/lab2/welcome.jsp</result> 20 </action> 21 </package> 22 23 24 25 <!-- Add packages here --> 26 27 </struts>
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 2 <%@taglib prefix="s" uri="/struts-tags" %> 3 <% 4 String path = request.getContextPath(); 5 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 6 %> 7 8 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 9 <html> 10 <head> 11 <base href="<%=basePath%>"> 12 13 <title>My JSP 'login.jsp' starting page</title> 14 15 <meta http-equiv="pragma" content="no-cache"> 16 <meta http-equiv="cache-control" content="no-cache"> 17 <meta http-equiv="expires" content="0"> 18 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 19 <meta http-equiv="description" content="This is my page"> 20 <!-- 21 <link rel="stylesheet" type="text/css" href="styles.css"> 22 --> 23 24 </head> 25 26 <body> 27 <s:form action="login2" namespace="/action"> 28 <s:textfield name="username" label="用户名"/> 29 <s:password name="password" label="密码"/> 30 <s:submit value="登陆"></s:submit> 31 </s:form> 32 </body> 33 </html>
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 2 <% 3 String path = request.getContextPath(); 4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 5 %> 6 7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 8 <html> 9 <head> 10 <base href="<%=basePath%>"> 11 12 <title>My JSP 'welcome.jsp' starting page</title> 13 14 <meta http-equiv="pragma" content="no-cache"> 15 <meta http-equiv="cache-control" content="no-cache"> 16 <meta http-equiv="expires" content="0"> 17 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 18 <meta http-equiv="description" content="This is my page"> 19 <!-- 20 <link rel="stylesheet" type="text/css" href="styles.css"> 21 --> 22 23 </head> 24 25 <body> 26 <%=request.getParameter("username") %>您好, 27 您的登陆密码是:<%=request.getParameter("password") %> 28 </body> 29 </html>
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app version="3.0" 3 xmlns="http://java.sun.com/xml/ns/javaee" 4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 5 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 6 http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> 7 <filter> 8 <filter-name>struts2</filter-name> 9 <filter-class> 10 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter 11 </filter-class> 12 </filter> 13 <filter-mapping> 14 <filter-name>struts2</filter-name> 15 <url-pattern>/*</url-pattern> 16 </filter-mapping> 17 </web-app>
结果图:
登陆页面
登陆不成功