Struts2之数据校验validate()函数

讲解:validate()是自动执行的,只有在执行成功是才会继续执行execute()。

validate()的执行时间是getXXX()执行完毕后。

 

实验实现过程

1)创建一个web项目

2) 将Struts2类包中的以下jar文件加入到工程的构建路径或拷贝到项目的lib目录中

3)在web.xml文件中设置核心控制器

4)创建动作类

5)创建struts.xml,在其中定义动作包、动作等内容,保存目录为src

6)分别创建登录和欢迎JSP页面,保存目录为WebRoot

 

代码:

 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 }
LoginAction
 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>
struts.xml
 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>
login.jsp
 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>
welcome.jsp
 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>
web.xml

 

结果图:

登陆页面

 

登陆不成功

 

 

 

posted @ 2014-03-17 10:49  SeatonYexd  阅读(337)  评论(0编辑  收藏  举报