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

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

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

    探索與發現

    研究java技術

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      83 隨筆 :: 0 文章 :: 109 評論 :: 0 Trackbacks

    本地中文化網址

    http://wiki.javascud.org/display/ww2cndoc/Home

    在線文檔

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

    struts 的區別有實現國級化的時候, struts message 只能出現 5 個動態的值

    也就像下面的信息

    Your {0} ticket(s) for flight {1} have been booked.

    The total cost is {2}. Your confirmation number is {3}.

    Your flight leaves at {4} and arrives at {5}

    需要分成兩段才能完成

    <bean:message key="confirmation.msg1"

    arg0="count" arg1="flightNumber" arg2="cost"/>

    <bean:message key="confirmation.msg2"

    arg0="confirmation" arg1="departure" arg2="arrival"/>

    webwork 是無限制的,像上面的可以寫成這樣子

    <ww:text name="confirmation.msg">

    <ww:param value="count"/>

    <ww:param value="flightNumber"/>

    <ww:param value="cost"/>

    <ww:param value="confirmation"/>

    <ww:param value="departure"/>

    <ww:param value="arrival"/>

    </ww:text>

    還有在web.xml里同指定webwork的tld所在位置

    <taglib>

    <taglib-uri>webwork</taglib-uri>

    <taglib-location>
    /WEB-INF/lib/webwork-2.1.7.jar

    </taglib-location>

    </taglib>
    在很多書上都講上面可行,可是我卻報下面的錯...換成下面那種方式就ok了

    org.apache.jasper.JasperException: Unable to initialize TldLocationsCache: null
    也可以指定webwork.tld所在的位置也可以,,如
    /WEB-INF/webwork.tld(webwork.tld拷到這下面來).

    一個簡單的例子
    ?
    import com.opensymphony.xwork.Action;
    public class HelloWorldAction implements Action{
    ??? String greeting;
    ??? public String getGreeting() {
    ??????? return greeting;
    ??? }
    ??? public String execute() throws Exception {
    ??????? greeting = "Hello World!";
    ??????? return SUCCESS;
    ??? }
    }
    實現的action接口里面只有一個方法
    ?
    interface Action {
    String execute() throws Exception;
    }
    greetings.jsp
    <%@ taglib prefix="ww" uri="webwork" %>
    <html>
    <head>
    ??? <title>First WebWork Example</title>
    </head>
    <body>
    <p><ww:property value="greeting"/></p>
    </body>
    </html>
    xwork.xml 放到就用的classpath下面(也就web-inf/classes下面)
    <action name="hello" class="HelloWorldAction">
    <result name="success" type="dispatcher">
    <param name="location">/greetings.jsp</param>
    </result>
    <interceptor-ref name="debugStack"/>
    <interceptor-ref name="defaultStack"/>
    </action>
    還有在web.xml里面加上webwork的一個加載類
    <servlet>
    ??????? <servlet-name>action</servlet-name>
    ??????? <servlet-class>com.opensymphony.webwork.dispatcher.ServletDispatcher</servlet-class>
    ??? </servlet>
    ??? <servlet-mapping>
    ??????? <servlet-name>action</servlet-name>
    ??????? <url-pattern>*.action</url-pattern>
    ??? </servlet-mapping>
    ActionSupport
    1:提供對錯誤信息的支持
    ? action and field specific errors
    ? field errors are automatically supported by views
    2:國際化的支持
    ? 1 resource bundle per action
    ? pervasive UI support for retrieving messages
    ?--------------------------------------------------------------------------------
    ActionSupport Example:
    import com.opensymphony.xwork.ActionSupport;
    public class HelloWorldAction extends ActionSupport{
    ??? String greeting;
    ??? public void setGreeting(String greeting) {
    ??????? this.greeting = greeting;
    ??? }
    ??? public String getGreeting() {
    ??????? return greeting;
    ??? }
    ??? public String execute() throws Exception {
    ??????? if (greeting.equals("") || greeting == null) {
    ??????????? addFieldError("greeting", getText("greeting"));
    ??????????? return ERROR;
    ??????? }
    ??????? return SUCCESS;
    ??? }
    }
    這里的getText("greeting")的greeting要與HelloWorldAction.properties(放在與HelloWorldAction.class同級目錄下面,名稱也一樣)里的greeting=Enter your greeting please相同
    上面的set.get其實與struts當中的ActionFrom類似..
    <%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
    <%@ taglib prefix="ui" uri="webwork" %>
    <html>
    <head>
    ??? <title>First WebWork Example</title>
    </head>
    <body>
    <form action="hello.action" method="post">
    <table>
    ??? <ui:textfield label="歡迎語句" name="greeting"/>
    ??? <ui:submit value="'Submit'"/>
    </table>
    </form>
    </body>
    </html>
    這里的greeting要與HelloWorldActio.java里的屬性一致
    如出現錯誤會顯示在當前頁,
    Enter your greeting please

    如填上內容,就會相應的調用setGreeting()方法的..
    <%@ taglib prefix="ww" uri="webwork" %>
    <html>
    <head>
    ??? <title>First WebWork Example</title>
    </head>
    <body>
    <p><ww:property value="greeting"/></p>
    </body>
    </html>
    把填的內容顯示出來
    在xwork.xml里的<action>
    也相應的變成
    <action name="hello" class="helloWorld.HelloWorldAction">
    ???<result name="success" type="dispatcher">
    ????<param name="location">/greetings.jsp</param>
    ???</result>
    ???<result name="error" type="dispatcher">
    ????????? <param name="location">/index.jsp</param>
    ??????????? </result>
    ??</action>
    ------------------------------------------------------------
    ?
    Model-Driven Actions vs. Field-Driven Actions
    ?
    2 types of Actions possible:
    (1)Field-Drivern上面的例子就是
    (2)ModelDriven
    package helloWorld;
    public class Pet {
    ??? private long id;
    ?private String name;
    ??? public long getId() {
    ??????? return id;
    ??? }
    ??? public void setId(long id) {
    ??????? this.id = id;
    ??? }
    ??? public String getName() {
    ??????? return name;
    ??? }
    ??? public void setName(String name) {
    ??????? this.name = name;
    ??? }
    }
    --
    package helloWorld;
    import com.opensymphony.xwork.*;
    public class AddPetAction extends ActionSupport implements ModelDriven{
    ?Pet pet = new Pet();
    ??? public Object getModel() {
    ??????? return pet;
    ??? }
    ??? protected void doValidation() {
    ??????? if (pet.getId() == 0) {
    ??????????? addFieldError("id", "Please enter in an id number for you new Pet.");
    ??????? }
    ??? }
    ??? public String doExecute() throws Exception {
    ??????? if (hasErrors())
    ??????????? return ERROR;
    ??????? return SUCCESS;
    ??? }

    }
    需實現ModelDriven這個接口,它也只有一個方法
    public Object getModel();
    ?在xwork.xml加上
    <action name="addpet" class="helloWorld.AddPetAction">
    ???<result name="success" type="dispatcher">
    ????<param name="location">/petadded.jsp</param>
    ???</result>
    ???<result name="error" type="dispatcher">
    ????<param name="location">/addpet.jsp</param>
    ???</result>
    ???<interceptor-ref name="debugStack" />
    ???<interceptor-ref name="defaultStack" />
    ??</action>
    還有兩個頁面分別用來添加和顯示用的
    <%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
    <%@ taglib prefix="ui" uri="webwork" %>
    <html>
    <head>
    ??? <title>First WebWork Example</title>
    </head>
    <body>
    <form action="addpet.action" method="post">
    <table>
    ??? <ui:textfield label="Pet ID Number" name="id"/>
    ??? <ui:textfield label="Name of Pet" name="name"/>
    ??? <ui:submit value="'Submit'"/>
    </table>
    </form>
    </body>
    </html>
    -------petadded.jsp
    <%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
    <%@ taglib prefix="ww" uri="webwork" %>
    <html>
    <head>
    ??? <title>First WebWork Example</title>
    </head>
    <body>
    <p>Added a pet with the following properties:</p>
    <ul>
    ??? <li>ID: <ww:property value="id"/></li>
    ??? <li>Name: <ww:property value="name"/></li>
    </ul>
    </form>
    </body>
    </html>
    posted on 2006-08-02 19:02 蜘蛛 閱讀(3274) 評論(0)  編輯  收藏 所屬分類: webwork

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


    網站導航:
     
    主站蜘蛛池模板: 亚洲理论片在线观看| 国产成人综合亚洲亚洲国产第一页| 亚洲AV无码成人网站久久精品大| 国产黄在线播放免费观看| 亚洲国产精品无码久久久久久曰 | 亚洲男人的天堂在线播放| a毛片视频免费观看影院| 亚洲AV无码一区二区乱子伦| 青青操免费在线观看| 婷婷精品国产亚洲AV麻豆不片| 一级毛片aaaaaa免费看| 亚洲制服中文字幕第一区| 18级成人毛片免费观看| 亚洲精品视频在线观看免费| 在线视频免费观看高清| 亚洲国产欧美日韩精品一区二区三区| 免费h成人黄漫画嘿咻破解版| 精品久久久久久亚洲中文字幕| www亚洲一级视频com| 国产啪精品视频网站免费尤物| 激情内射亚洲一区二区三区| 动漫黄网站免费永久在线观看| 欧美激情综合亚洲一二区| 亚洲国产小视频精品久久久三级| 日韩精品无码免费专区午夜不卡| 亚洲一区影音先锋色资源| 曰批全过程免费视频在线观看| 精品亚洲福利一区二区| 亚洲va久久久噜噜噜久久男同| 国国内清清草原免费视频99| 风间由美在线亚洲一区| 国产精品亚洲а∨无码播放| 亚洲精品视频在线观看免费| 99亚洲乱人伦aⅴ精品| 国产亚洲3p无码一区二区| 114一级毛片免费| 污污视频网站免费观看| 亚洲午夜精品久久久久久人妖| 日韩免费a级在线观看| 国产偷伦视频免费观看| 亚洲午夜无码久久久久软件 |