WebWork用戶登陸簡單實(shí)現(xiàn)
WebWork用戶登陸主要實(shí)現(xiàn)如下功能:
1、login.jsp中就name,password字段
2、用戶名與密碼不能為空!如果空給予提示(使用Webwork驗(yàn)證,國際化)
2、當(dāng)用戶名為:xiaomaha密碼為123跳轉(zhuǎn)到seccess.jsp頁面否則跳轉(zhuǎn)到defeat.jsp頁面
WebWork用戶登陸***步:導(dǎo)包
版本為:webwork-2.2.5
http://www.opensymphony.com/webwork
可以下載所需要的包
1、webwork-2.2.5.jar
2、lib目錄下default中的所有包
WebWork用戶登陸第二步:配置web.xml
com.opensymphony.webwork.dispatcher.FilterDispatcher 為WebWork中的Servlet控制器
- 〈?xmlversion="1.0"encoding="UTF-8"?〉
- 〈web-appversion="2.4"
- xmlns="http://java.sun.com/xml/ns/j2ee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
- http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"〉
- 〈filter〉
- 〈filter-name〉webwork〈/filter-name〉
- 〈filter-class〉
- com.opensymphony.webwork.dispatcher.FilterDispatcher
- 〈/filter-class〉
- 〈/filter〉
- 〈filter-mapping〉
- 〈filter-name〉webwork〈/filter-name〉
- 〈url-pattern〉*.action〈/url-pattern〉
- 〈/filter-mapping〉
- 〈/web-app〉
Filter是一個(gè)過濾器,頁面以*.action的請求都交給WebWork的servlet控制器
WebWork用戶登陸第三步:創(chuàng)建Action
首先創(chuàng)建一個(gè)Action,WebWork中Action其實(shí)就是一個(gè)普通的JAVA類。
只要寫一個(gè)execute()方法 返回
String類型,在配置文件定義它.那么它就是一個(gè)Action。相當(dāng)與Struts1中的Action!WebWork實(shí)現(xiàn)了與Servlet解偶合,方便測試`本人特別喜歡?。?/P>
但是如果需要方便的開發(fā)那么繼承ActionSupport,覆寫它的execute()注意它的返回值是一個(gè)String,不是一個(gè)ActionForword
WebWork中可以使用兩中方法實(shí)現(xiàn)驗(yàn)證
1、在Action中繼承ActionSupport,覆寫validate()方法(本人給予注釋了!)
2、配置文件實(shí)現(xiàn),本例使用配置文件,注意必須將驗(yàn)證的配置文件寫到與自定義Action同包下!
- package com.xiaomaha.action;
- import com.opensymphony.xwork.ActionSupport;
- public class LoginAction extends
- ActionSupport ...
- {
- private String userName;
- private String passWord;
- public String getPassWord() ...
- {
- return passWord;
- }
- public void setPassWord(String passWord) ...
- {
- this.passWord = passWord;
- }
- public String getUserName() ...{
- return userName;
- }
- public void setUserName(String userName) ...
- {
- this.userName = userName;
- }
- public String execute() throws Exception ...
- {
- String path = null ;
- if("xiaomaha".equalsIgnoreCase(this.userName)&&"123".
- equals(this.passWord))...{
- path =this.SUCCESS;
- }else...{
- path =this.ERROR;
- }
- return path;
- }
- //public void validate() {
- //if("".equals(this.userName)||this.userName==null){
- ///*addFieldError()相當(dāng)與Struts1中的ActionErrors*
- // * 如果要實(shí)現(xiàn)國際化那么需要getText()它用于讀取資源文件
- // * getText("name.null")對應(yīng)資源文件中的key,它會找到value
- // */
- //this.addFieldError("userName", getText("name.null"));
- //}
- //
- //if("".equals(this.passWord)||this.passWord==null){
- //this.addFieldError("passWord", getText("pass.null"));
- //}
- //}
- }
WebWork用戶登陸第四步:創(chuàng)建xwork.xml
xwork.xml有點(diǎn)像Struts1中的struts-config.xml
xwork.xml文件必須放在類路徑下 WEB-INF/classes/ 之下
WebWork的Servlet控制器會去找到它并解析它,路徑一定不要放錯(cuò)了,名字一定不要錯(cuò)!
還要提示注意,在WebWork中所有的Action標(biāo)簽必須在package標(biāo)簽下,package是action的父標(biāo)簽
- 〈 include file="webwork-default.xml"〉
- 〈 /include〉
- 會去找到WebWork中JAR文件中的webwork-default.xml,
- 必寫 〈 !DOCTYPE xwork PUBLIC
- "-//OpenSymphony Group//XWork 1.1.1//EN"
- "http://www.opensymphony.com/xwork/xwork-1.1.1.dtd"〉
- 〈 xwork〉
- 〈 !-- include加載webwork中的webwork-default.xml
- 是必須的不然會拋出
- servlet jsp threw exception
- --〉
- 〈 include file="webwork-default.xml"〉 〈 /include〉
- 〈 package name="webworkdemo" extends="webwork-default"〉
- 〈 action name="login"
- class="com.xiaomaha.action.LoginAction"〉
- 〈 result name="success"〉 /success.jsp〈 /result〉
- 〈 result name="error"〉 /error.jsp〈 /result〉
- 〈 result name="input"〉 /login.jsp〈 /result〉
- 〈 /action〉
- 〈 /package〉
- 〈 /xwork〉
如果Action中的execute()方法返回success字符串那么,跳轉(zhuǎn)到success.jsp頁面中
- 〈 result name="success"〉 /success.jsp〈 /result〉
- 〈 result name="input"〉 /login.jsp〈 /result〉
和Struts1中的input一樣都是顯示錯(cuò)誤消息,但在WebWork中不需要定義返回錯(cuò)誤的標(biāo)簽。
因?yàn)閃ebWork中定義的標(biāo)簽中〈 w:form〉 已經(jīng)實(shí)現(xiàn)了錯(cuò)誤驗(yàn)證
在自定義的Action同包下建立一個(gè)與Action一樣名字+validation.xml文件
例如:
Action:LoginAction.java
配置文件:LoginAction-validation.xml
- 〈 ?xml version="1.0" encoding="UTF-8"?〉
- 〈 !DOCTYPE validators PUBLIC
- "-//OpenSymphony Group//XWork Validator 1.0//EN"
- "http://www.opensymphony.com/xwork/
- xwork-validator-1.0.dtd" 〉
- 〈 validators〉
- 〈 field name="userName"〉
- 〈 field-validator type="requiredstring" 〉
- 〈 message key="name.null"〉〈 /message〉
- 〈 /field-validator〉
- 〈 /field〉
- 〈 field name="passWord"〉
- 〈 field-validator type="requiredstring"〉
- 〈 message key="pass.null"〉〈 /message〉
- 〈 /field-validator〉
- 〈 /field〉
- 〈 /validators〉
name.null 、pass.null 對應(yīng)資源文件的key
requiredstring 代表:不能為空,是必須的
WebWork用戶登陸第六步:創(chuàng)建國際化資源文件
創(chuàng)建一個(gè)Message.properties ,里面不能寫中文。
需要在dos窗口中進(jìn)行轉(zhuǎn)碼
命令為native2ascii Message.properties Message.properties_zh_cn.properties 就生成了一個(gè)新的文件,刪除Message.properties
瀏覽器如果為中文,那么它會找到 Message.properties_zh_cn.properties ,為了方便我就不定義其它語言的配置文件咯!
提示:Message 可以任意修改!
例:比如需要定義支持英語的可以這樣寫 Message_en_US.properties
Message.properties_zh_cn.properties如下:
- name.null =
- \u7528\u6237\u540d\u4e0d\u80fd\u4e3a\u7a7a\uff01
- pass.null =
- \u5bc6\u7801\u4e0d\u80fd\u4e3a\u7a7a\uff01
WebWork用戶登陸***一步:加載上面的資源文件
在類路徑下創(chuàng)建 webwork.properties ,WebWork會在類路徑找到它并且解析它!
里面添加如下:
webwork.custom.i18n.resources=Message
Ok一切搞定咯!
【編輯推薦】