速動畫教程第二十三集 WebWork2 示例

          Posted on 2006-07-15 16:08 oksonic 閱讀(3851) 評論(2)  編輯  收藏

          速動畫教程第二十三集 WebWork2 示例


          下載地址: http://this.oksonic.cn
          ?

          準(zhǔn)備工作:

          ??? Eclipse3.1.1?? MyEclipse4.1.1?? Tomcat5.1.x

          ??? 下載 WebWork 完整包有 52M,現(xiàn)在最新版是 2.2.2

          ??? http://www.opensymphony.com/webwork/

          ?

          新建工程 名稱為 test ,使用 j2ee 1.4

          解壓包中的 webwork-2.2.2.jar 文件到項目的 lib 目錄

          解壓包中的 lib\default\*.jar 文件到項目的 lib 目錄,注:如果使用的是2.1.x的包需要解壓的路徑為 lib\core\*.jar

          ?

          配置 web.xml 文件,文件內(nèi)容如下:

          <? xml version = "1.0" encoding = "UTF-8" ?>

          < web-app version = "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" >

          ??? < servlet >

          ?????? < servlet-name > webwork </ servlet-name >

          ?????? < servlet-class > com.opensymphony.webwork.dispatcher.ServletDispatcher </ servlet-class >

          ??? </ servlet >

          ??? < servlet-mapping >

          ?????? < servlet-name > webwork </ servlet-name >

          ?????? < url-pattern > *.action </ url-pattern >

          ??? </ servlet-mapping >

          </ web-app >

          WebWork 的Action是以 *.action 方式進(jìn)行處理的,而 Struts 是以 *.do 方式處理

          ?

          ?

          此示例需要使用到以下結(jié)構(gòu)

          ?

          模型: User.java???????

          控制: LoginAction.java

          視圖: index.jsp ok.jsp error.jsp

          配置: xwork.xml

          ?

          新建 User.java 文件,內(nèi)容如下:

          package com.test.model.bo;

          ?

          public class User {

          ?

          ??? private String userName;

          ??? private String userPwd;

          ???

          ??? public String getUserName() {

          ??????? return userName;

          ??? }

          ??? public void setUserName(String userName) {

          ??????? this.userName = userName;

          ??? }

          ??? public String getUserPwd() {

          ??????? return userPwd;

          ??? }

          ??? public void setUserPwd(String userPwd) {

          ??????? this.userPwd = userPwd;

          ??? }

          }

          ?

          新建一個 class 文件名為: LoginAction ,并實現(xiàn) com.opensymphony.xwork.Action 接口,此類和 Struts Action 相當(dāng)相似,不過是以接口的方式實現(xiàn),而 Struts 的是 Action 是以繼承的方式實現(xiàn),它們都有一個 execute() 方法

          ? 代碼如下:

          package com.test.web.action;

          ?

          import com.opensymphony.xwork.Action;

          import com.test.model.bo.User;

          ?

          public class LoginAction implements Action {

          ?

          ??? // 此屬性一定要進(jìn)行初始化操作

          ??? private User user = new User();

          ???

          ??? public String execute() throws Exception {

          ??????? // 可以在這里調(diào)用Service層來進(jìn)行驗證,這里只驗證用戶名

          ??????? if (user.getUserName().equals("oksonic"))

          ??????????? return this.SUCCESS;

          ??????? else

          ??????????? return this.ERROR;

          ??? }

          ?

          ??? public User getUser() {

          ??????? return user;

          ??? }

          ?

          }

          ?

          綠色字體為新增的一個屬性,并創(chuàng)建它的 get 方法

          ?

          src 目錄下新建一個 xwork.xml 文件,此文件相當(dāng)于 Struts 的配置文件,文件內(nèi)容如下:

          <! DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN" "http://www.opensymphony.com/xwork/xwork-1.0.dtd" >

          < xwork >

          ??? < include file = "webwork-default.xml" />

          ??? < package name = "default" extends = "webwork-default" >

          ?????? < action name = "login" class = "com.test.web.action.LoginAction" >

          ?????????? <!--? 這里的意思是登錄成功后跳轉(zhuǎn)到 /ok.jsp 頁面 -->

          ?????????? < result name = "success" type = "dispatcher" >

          ????????????? < param name = "location" > /ok.jsp </ param >

          ?????????? </ result >

          ???????????????????? <!--? 登錄失敗后跳轉(zhuǎn)到 / error .jsp 頁面 -->

          ?????????? < result name = "error" type = "dispatcher" >

          ????????????? < param name = "location" > /error.jsp </ param >

          ?????????? </ result >

          ?????????? <!--? 此段代碼為作用是將 request 請求的參數(shù)傳遞到 action -->

          ?????????? < interceptor-ref name = "params" />

          ?????? </ action >

          ??? </ package >

          </ xwork >

          ?

          ?

          新建三個 jsp 文件

          ?

          index.jsp 內(nèi)容如下:

          < html >

          ??? < head >

          ?????? < title > INDEX </ title >

          ??? </ head >

          ?

          ??? < body >

          ??????

          ?????? < DIV align = "center" >

          ?????????? LOGIN

          ?????? </ DIV >

          ?????? < FORM action = "login.action" method = "post" >

          ?????????? < DIV align = "center" >

          ????????????? < TABLE border = "1" cellpadding = "0" cellspacing = "0" >

          ????????????????? < TR >

          ???????????????????? < TD >

          ???????????????????????? username:

          ???????????????????? </ TD >

          ???????????????????? < TD >

          ???????????????????????? < INPUT type = "text" size = "10" name = "user.userName" >

          ???????????????????? </ TD >

          ????????????????? </ TR >

          ????????????????? < TR >

          ???????????????????? < TD >

          ???????????????????????? password:

          ???????????????????? </ TD >

          ???????????????????? < TD >

          ???????????????????????? < INPUT type = "text" size = "10" name = "user.userPwd" >

          ???????????????????? </ TD >

          ????????????????? </ TR >

          ??? ????????????? < TR >

          ???????????????????? < TD colspan = "2" align = "center" >

          ???????????????????????? < INPUT type = "submit" value = "submit" name = "submit" >

          ???????????????????????? < INPUT type = "reset" value = "reset" name = "reset" >

          ???????????????????? </ TD >

          ????????????????? </ TR >

          ????????????? </ TABLE >

          ?????????? </ DIV >

          ?????? </ FORM >

          ??? </ body >

          </ html >

          ?

          這個頁面使用的全是 html 的語法, user.userPwd 為 Action 中 User 對像 的 userPwd 屬性

          ?

          ok.jsp 文件內(nèi)容如下:

          <%@ taglib prefix = "ww" uri = "/webwork" %>

          < html >

          ??? < head >

          ?????? < title > OK </ title >

          ??? </ head >

          ??? < body >

          ?????? userName= < ww:property value = "user.userName" />

          ?????? < br >

          ?????? userPwd= < ww:property value = "user.userPwd" />

          ?????? < br >

          ??? </ body >

          </ html >

          ?

          這里使用了WebWork的標(biāo)簽

          ?

          error.jsp 文件內(nèi)容如下:

          < html >

          ??? < head >

          ?????? < title > ERROR </ title >

          ??? </ head >

          ??? < body >

          ?????? Error !!!

          ??? </ body >

          </ html >

          ?

          已經(jīng)成功了!!!,對于 webwork 我也是剛學(xué)了這么一點,以后再有什么研究成果會再次展示給大家的!!

          Feedback

          # re: 速動畫教程第二十三集 WebWork2 示例  回復(fù)  更多評論   

          2006-07-17 15:03 by wzywjy
          webwork2.2開始就建議使用Filter了,你怎么還在使用Servlet呀

          # re: 速動畫教程第二十三集 WebWork2 示例  回復(fù)  更多評論   

          2008-03-12 23:26 by 在職研究生
          我也是剛學(xué)了這么一點,以后再有什么研究成果會再次向大家學(xué)習(xí)

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           

          posts - 103, comments - 1104, trackbacks - 0, articles - 0

          Copyright © oksonic

          主站蜘蛛池模板: 丹凤县| 乐清市| 资源县| 道孚县| 青海省| 阳西县| 孝义市| 乾安县| 兴国县| 玛纳斯县| 渭南市| 康保县| 杨浦区| 宁明县| 清镇市| 朔州市| 盘锦市| 光山县| 济宁市| 梧州市| 定远县| 获嘉县| 卢湾区| 武功县| 新兴县| 方正县| 巴楚县| 桐梓县| 平武县| 静乐县| 盐池县| 济源市| 囊谦县| 公安县| 那曲县| 中阳县| 闵行区| 漳浦县| 十堰市| 济南市| 灌阳县|