<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    飛舞的幻想

    常用鏈接

    統計

    Google Adsense

    Zanox FWHX

    花個明白

    最新評論

    一個WebWork實現的簡單登錄過程以及遇到問題并附代碼

    1.login.jsp中點擊submit按紐后,請求將被發送到web容器的login.action,
    2.web容器檢索web.xml,通過
    <servlet-mapping>
    ??????? <servlet-name>webwork</servlet-name>
    ??????? <url-pattern>*.action</url-pattern>
    ??? </servlet-mapping>

    這一段得到webwork關鍵字,再通過
    ??? <servlet>
    ??????? <servlet-name>webwork</servlet-name>
    ??????? <servlet-class>
    ??????????? com.opensymphony.webwork.dispatcher.ServletDispatcher
    ??????? </servlet-class>

    ??????? <load-on-startup>1</load-on-startup>
    ??? </servlet>

    將請求轉發給com.opensymphony.webwork.dispatcher.ServletDispatcher類來處理,這個類會讀取xwork.xml文件
    3.通過和最初login.jsp提交的"login.action"中去掉web.xml中的定義的".action", 得到"login",在xwork.xml中的
    ??????? <action name="login" class="com.cdpgc.salary.LoginAction">
    ??????????? <result name="failed" type="dispatcher">login-failed.jsp</result>
    ??????????? <result name="success" type="dispatcher">login-success.jsp</result>
    ??????? </action>

    找到"login"的定義,并尋找com.cdpgc.salary.LoginAction來處理這個請求,當該對象的execute()方法返回
    <result>節點"name"屬性定義的字符串的時候,將結果使用某個jsp來響應.這里是
    success->login-success.jsp
    failed->login-failed.jsp
    4.兩個jsp中使用了
    <ww:property value="user" />

    來訪問處理類(com.cdpgc.salary.LoginAction)的屬性,它依賴于
    <%@ taglib uri="webwork" prefix="ww" %>

    定義的標簽庫,而這個標簽庫定義中的uri依賴于web.xml中的
    ??? <taglib>
    ??????? <taglib-uri>webwork</taglib-uri>
    ??????? <taglib-location>
    ??????????? /WEB-INF/lib/webwork-2.1.7.jar
    ??????? </taglib-location>
    ??? </taglib>

    定義的taglib-uri名稱

    另外,在LoginAction.java中webwork會將發出請求的form中的值--------在<input type='xxx' name='xxx'>中的值
    填入到自己的屬性中(如果有同名屬性的化),這樣我們可以獲得請求參數.在處理完畢后,同樣可以設置它,
    而在結果jsp中,webwork又會將該值提供給jsp訪問,當然還是基于名稱相同.

    遇到問題
    一、webwork jar文件添加,需要的Jar需要添加完備。
    二、java.lang.NoSuchMethodError: javax.xml.transform.dom.DOMResult.getNextSibling()Lorg/w3c/dom/Node;
    ??? org.apache.xalan.transformer.TransformerIdentityImpl.createResultContentHandler(TransformerIdentityImpl.java:199)
    ??? org.apache.xalan.transformer.TransformerIdentityImpl.setDocumentLocator(TransformerIdentityImpl.java:880)
    ??? com.opensymphony.xwork.util.DomHelper$DOMBuilder.setDocumentLocator(DomHelper.java:233)
    ??? com.opensymphony.xwork.util.location.LocationAttributes$Pipe.setDocumentLocator(LocationAttributes.java:302)
    ??? com.opensymphony.xwork.util.DomHelper$StartHandler.setDocumentLocator(DomHelper.java:292)
    ??? org.apache.xerces.parsers.AbstractSAXParser.startDocument(Unknown Source)
    ??? org.apache.xerces.impl.dtd.XMLDTDValidator.startDocument(Unknown Source)
    ??? org.apache.xerces.impl.XMLDocumentScannerImpl.startEntity(Unknown Source)
    ??? org.apache.xerces.impl.XMLVersionDetector.startDocumentParsing(Unknown Source)
    ??? org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    ??? org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    ??? org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
    ??? org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
    ??? javax.xml.parsers.SAXParser.parse(Unknown Source)
    ??? com.opensymphony.xwork.util.DomHelper.parse(DomHelper.java:122)
    ??? com.opensymphony.xwork.config.providers.XmlConfigurationProvider.loadConfigurationFile(XmlConfigurationProvider.java:642)
    ??? com.opensymphony.xwork.config.providers.XmlConfigurationProvider.init(XmlConfigurationProvider.java:91)
    ??? com.opensymphony.xwork.config.impl.DefaultConfiguration.reload(DefaultConfiguration.java:85)
    ??? com.opensymphony.xwork.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:54)
    ??? com.opensymphony.xwork.DefaultActionProxy.<init>(DefaultActionProxy.java:57)
    ??? com.opensymphony.xwork.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:46)
    ??? com.opensymphony.webwork.dispatcher.DispatcherUtils.serviceAction(DispatcherUtils.java:216)
    ??? com.opensymphony.webwork.dispatcher.ServletDispatcher.service(ServletDispatcher.java:111)
    ???
    問題原因原來是因為使用了tomcat5.0.28它里面的xml-api.jar把jdk1.5里面的DOMResult沖掉了 ,改用Tomcat的5.5版本問題解決。
    三、javax.xml.transform.TransformerFactoryConfigurationError: Provider org.apache.xalan.processor.TransformerFactoryImpl not found
    javax.xml.transform.TransformerFactory.newInstance(Unknown Source)
    com.opensymphony.xwork.util.DomHelper$DOMBuilder.<clinit>(DomHelper.java:168)
    com.opensymphony.xwork.util.DomHelper.parse(DomHelper.java:116)
    com.opensymphony.xwork.config.providers.XmlConfigurationProvider.loadConfigurationFile(XmlConfigurationProvider.java:642)
    com.opensymphony.xwork.config.providers.XmlConfigurationProvider.init(XmlConfigurationProvider.java:91)
    com.opensymphony.xwork.config.impl.DefaultConfiguration.reload(DefaultConfiguration.java:85)
    com.opensymphony.xwork.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:54)
    com.opensymphony.xwork.DefaultActionProxy.<init>(DefaultActionProxy.java:57)
    com.opensymphony.xwork.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:46)
    com.opensymphony.webwork.dispatcher.DispatcherUtils.serviceAction(DispatcherUtils.java:216)
    com.opensymphony.webwork.dispatcher.ServletDispatcher.service(ServletDispatcher.java:111)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    問題原因缺少xalan.jar文件,去http://xml.apache.org/xalan-j/index.html下載即可。

    代碼:login.jsp,loginsucess.jsp,loginfailed.jsp,LoginAction.java.
    ????? 我們登錄login.jsp,輸入用戶名,post之后,請求將提交給LoginAction處理,如果成功則返回login-success.jsp,否則返回loginfailed.jsp
    ?
    ????? login.jsp
    <html>
    <head>
    <title>WebWork Tutorial - Lesson 3 - Example 1</title>
    </head>

    <body>

    <p>
    Click the [post] button below to Login.
    </p>

    <form action="login.action" method="post">
    <p>user:<input type="text" name="user" value="" /></p>
    <p>password:<input type="password" name="password" value="" /></p>
    <p><input type="submit" value="post" /></p>
    </form>

    </body>
    </html>

    login-success.jsp

    <%@ taglib uri="webwork" prefix="ww" %>
    <html>
    <head>
    <title>welcome to salary</title>
    </head>
    <body>

    <font color="green">

    <ww:property value="user" /> has logon [SalaryQueryModule]

    </font>
    <br>



    </body>
    </html>

    login-failed.jsp

    <%@ taglib uri="webwork" prefix="ww" %>
    <html>
    <head>
    <title>failed login</title>
    </head>
    <body>
    <font color="red">
    error login by [<ww:property value="user" /> ],invalid user or pwd
    </font>
    <br>
    </body>
    </html>

    web.xml,位于web-inf目錄下
    <?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">

    ??? <display-name>My WebWork Application</display-name>
    ??? <servlet>
    ??????? <servlet-name>webwork</servlet-name>
    ??????? <servlet-class>
    ??????????? com.opensymphony.webwork.dispatcher.ServletDispatcher
    ??????? </servlet-class>

    ??????? <load-on-startup>1</load-on-startup>
    ??? </servlet>
    ??? <servlet-mapping>
    ??????? <servlet-name>webwork</servlet-name>
    ??????? <url-pattern>*.action</url-pattern>
    ??? </servlet-mapping>
    ???
    ??? <taglib>
    ??????? <taglib-uri>webwork</taglib-uri>
    ??????? <taglib-location>
    ??????????? /WEB-INF/lib/webwork-2.1.7.jar
    ??????? </taglib-location>
    ??? </taglib>
    </web-app>

    xwork.xml位于web-inf\classes目錄下
    <!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN"
    "http://www.opensymphony.com/xwork/xwork-1.0.dtd">

    <xwork>
    ??? <!-- Include webwork defaults (from WebWork JAR). -->
    ??? <include file="webwork-default.xml" />
    ???
    ??? <!-- Configuration for the default package. -->
    ??? <package name="default" extends="webwork-default">
    ??????? <!-- Default interceptor stack. -->
    ??????? <default-interceptor-ref name="defaultStack" />
    ???????
    ??????? <!-- Action: Lesson 03: HelloAction. -->
    ??????? <action name="login" class="com.cdpgc.salary.LoginAction">
    ??????????? <result name="failed" type="dispatcher">login-failed.jsp</result>
    ??????????? <result name="success" type="dispatcher">login-success.jsp</result>
    ??????? </action>
    ??? </package>
    </xwork>

    LoginAction.java
    ?1/**//*
    ?2 * Created on 2005-8-4
    ?3 *
    ?4 * TODO To change the template for this generated file go to
    ?5 * Window - Preferences - Java - Code Style - Code Templates
    ?6 */
    ?7package com.cdpgc.salary;
    ?8
    ?9import com.opensymphony.xwork.ActionSupport;
    10
    11/**//**
    12 * @author codemyth
    13 *
    14 * TODO To change the template for this generated type comment go to Window -
    15 * Preferences - Java - Code Style - Code Templates
    16 */
    17public class LoginAction extends ActionSupport {
    18
    19??? String user;
    20??? String password;
    21
    22??? /**//*
    23???? * (non-Javadoc)
    24???? *
    25???? * @see com.opensymphony.xwork.Action#execute()
    26???? */
    27??? public String execute() throws Exception {
    28??????? // TODO verify user-password
    29??????? if (user.equals("bbb"))
    30??????????? return super.SUCCESS;
    31??????? else
    32??????????? return "failed";
    33??? }
    34??? /**//**
    35???? * @return Returns the user.
    36???? */
    37??? public String getUser() {
    38??????? return user;
    39??? }
    40??? /**//**
    41???? * @param user
    42???? *??????????? The user to set.
    43???? */
    44??? public void setUser(String user) {
    45??????? this.user = user;
    46??? }
    47??? /**//**
    48???? * @return Returns the password.
    49???? */
    50??? public String getPassword() {
    51??????? return password;
    52??? }
    53??? /**//**
    54???? * @param password
    55???? *??????????? The password to set.
    56???? */
    57??? public void setPassword(String password) {
    58??????? this.password = password;
    59??? }
    60}
    文章大部分內容來自http://www.tkk7.com/codemyth/archive/2005/08/06/9453.html

    posted on 2006-12-06 14:39 飛舞的幻想 閱讀(1232) 評論(1)  編輯  收藏 所屬分類: 框架學習

    評論

    # re: 一個WebWork實現的簡單登錄過程以及遇到問題并附代碼 2009-06-18 10:50 tttlan

    你好,最近在學習webwork,在運行第一個 helloworld例子除了一個錯誤:

    file:/F:/webwork/webapps/WEB-INF/classes/xwork.xml:13:61
    com.opensymphony.xwork.config.providers.XmlConfigurationProvider.loadConfigurationFile(XmlConfigurationProvider.java:673)
    com.opensymphony.xwork.config.providers.XmlConfigurationProvider.init(XmlConfigurationProvider.java:91)
    com.opensymphony.xwork.config.impl.DefaultConfiguration.reload(DefaultConfiguration.java:159)
    com.opensymphony.xwork.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:55)
    com.opensymphony.xwork.DefaultActionProxy.<init>(DefaultActionProxy.java:60)
    com.opensymphony.xwork.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:46)
    com.opensymphony.webwork.dispatcher.DispatcherUtils.serviceAction(DispatcherUtils.java:265)
    com.opensymphony.webwork.dispatcher.ServletDispatcher.service(ServletDispatcher.java:111)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

    也沒說什么錯誤,我估計是加載 xwork。xml時候出錯,可又找不出哪兒錯了。麻煩你幫忙看一下。

    謝謝了  回復  更多評論   

    主站蜘蛛池模板: 国产视频精品免费视频| 亚洲高清免费视频| 免费在线视频你懂的| 亚洲国产成人私人影院| 无码日韩精品一区二区免费暖暖 | 啦啦啦手机完整免费高清观看| 亚洲男女性高爱潮网站| 精品香蕉在线观看免费| 久久久国产精品亚洲一区| 最近免费mv在线电影| 亚洲精品中文字幕麻豆| 曰批视频免费30分钟成人| 亚洲精品伊人久久久久| 操美女视频免费网站| 在线观看亚洲精品专区| 亚洲午夜激情视频| 国产午夜无码精品免费看动漫| 亚洲AV日韩精品久久久久| 精品免费久久久久久久| 亚洲另类无码专区首页| 四虎影视永久免费观看| 两个人的视频www免费| 老汉色老汉首页a亚洲| 两个人的视频高清在线观看免费| 亚洲妇女无套内射精| 亚洲精品NV久久久久久久久久| 两个人看的www免费| 精品亚洲成AV人在线观看| 夜夜爽免费888视频| 国产精品亚洲专区在线播放| 最新国产AV无码专区亚洲| 麻豆成人精品国产免费| 男女猛烈xx00免费视频试看| 亚洲精品国产精品乱码不卡√| 久久精品国产免费观看三人同眠 | xxxxxx日本处大片免费看| 亚洲男人第一av网站| 好爽…又高潮了毛片免费看| 久久久久久久久久免免费精品| 亚洲精品视频在线播放| 亚洲成人影院在线观看|