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

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

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

    Ryan's Java world!

    something about Java and opensource!

    BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
      51 Posts :: 25 Stories :: 59 Comments :: 0 Trackbacks

    原文:http://www.theserverside.com/tt/articles/article.tss?l=GWTandJSF

    翻譯:icess http://blog.matrix.org.cn/page/icess?討論

    ?

    使用更多的動(dòng)態(tài)文本

    在我們應(yīng)用程序的第一個(gè)版本中,我們硬編碼標(biāo)簽字符到程序中.在下一個(gè)版本中,我們將保持該文本與java代碼分離.

    GWT Parameters in Hosted Mode

    一種方式是使用GWT來定義label 和message.

    13. 打開demo.gwt.client.HelloWidgetEntryPoint.java 文件用下面的代碼替換createWidget 方法.

    protected Widget createWidget(final String id) {
    Map m = getWidgetParams(id);
    final String buttonLabel = (String) m.get("buttonLabel");
    final String greeting = (String) m.get("greeting");

    Button btn = new Button(buttonLabel, new ClickListener() {
    public void onClick(Widget sender) {
    ????? Window.alert(greeting);
    ????? }
    });

    return btn;
    }
    ?

    14. 保存文件.

    15.?打開 JavaSource\demo\gwt\public\index.html 文件.

    該文件已經(jīng)包含了一個(gè)如何定義參數(shù)的示例,我們只需要修改一下就可以了. :

    16. 修改為如下的代碼:

    <html>
    <head>
    <meta name="gwt:module" content="demo.gwt.HelloWidget">
    <meta name="gwt:property" content="viewid=hello">
    <meta name="gwt:property" content="action=/gwtFacesServlet">
    <title>gwt-jsf integration</title>
    </head>
    <body bgcolor="white">
    <script language="javascript" src="gwt.js"></script>
    <iframe id="__gwt_historyFrame"
    style="width:0;height:0;border:0"></iframe>

    <span id="_id1" class="demo.gwt.HelloWidget">
    <span id="_id1:_data" style="display:none;">
    <span? title="buttonLabel">Say Hello</span>
    <span? title="greeting">Hello GWT!</span>
    </span>
    <input type="hidden" id="javax.faces.ViewState"
    name="javax.faces.ViewState" value="_id0:_id0" />
    </span>

    </body>
    </html>

    17.?在 Hosted Mode 中啟動(dòng)ant:

    ant shell

    你現(xiàn)在可以看到文本定義在?public/index.html 文件中:

    然而,如果你想創(chuàng)建一個(gè)war文件,然后部署它.你將看不到相同的結(jié)果.這是因?yàn)?public/index.html僅僅在Hosted Mode中其作用.在 Run-Time Mode,我們需要使用 JSF page.

    Using JSF Expression Language (EL) in Run-Time Mode

    看一下WebContent\pages\Base.xhtml文件.它包含如下代碼:?

    <widget:component id="main"? />

    這實(shí)際上是一個(gè)GWT widget 的?JSF 包裝.

    18. 定義組件的"buttonLabel" 和"greeting" 參數(shù) :

    <widget:component id="main"? buttonLabel ="Click Me!"
    greeting="Hello, GWT and JSF"/>

    19. 在Run-Time Mode中運(yùn)行該項(xiàng)目.

    看看結(jié)果. 然而這是不是太簡(jiǎn)單了, 下面來看看如何使用 ?JSF EL來使它更動(dòng)態(tài)一些.

    20.現(xiàn)在關(guān)閉XHTML?文件.

    ?

    Adding a Resource File

    21. 在JavaSource? 文件夾下創(chuàng)建demo/gwt/app/bundle/Labels.properties文件,包含下面的內(nèi)容:

    #
    buttonLabel=Say Hello!
    ?

    Adding a Managed Bean

    22. 在JavaSource中創(chuàng)建一個(gè)類demo.gwt.app.GreetingBean? .使用下面的代碼:

    package demo.gwt.app;

    public class GreetingBean {
    String name;

    public String getName() {
    return name;
    }

    public void setName(String name) {
    this.name = name;
    }
    }

    23. 在WEB-INF/faces-context.xml 中注冊(cè)該bean.

    The faces-context.xml should contain

    :

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.
    //DTD JavaServer Faces Config 1.1//EN"
    ????????????????????????????? "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
    <faces-config>

    <managed-bean>
    ? <managed-bean-name>greetingBean</managed-bean-name>
    ? <managed-bean-class>demo.gwt.app.GreetingBean</managed-bean-class>
    ? <managed-bean-scope>session</managed-bean-scope>
    ? <managed-property>
    ?? <property-name>name</property-name>
    ?? <property-class>java.lang.String</property-class>
    ?? <value>GWT and JSF</value>
    ? </managed-property>
    </managed-bean>


    ? <application>
    ? <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
    </application>
    </faces-config>
    ?

    Finishing Up

    要讓EL工作.我們要在組件類中添加屬性到屬性map中.

    24. 打開demo.gwt.jsf.UIHelloWidget,?找到 getWidgetParameters() 方法,使用下面的代碼替換.

    public Map getWidgetParameters() {
    HashMap params = new HashMap();
    params.put("greeting",getAttributes().get("greeting"));
    params.put("buttonLabel",getAttributes().get("buttonLabel"));
    return params;
    }

    25. 添加下面的import語句:

    import java.util.HashMap;

    現(xiàn)在回到?pages/Base.xhtml文件中.

    26. 把資源聲明放到該文件的頂部:

    <f:loadBundle basename="demo.gwt.app.bundle.Labels" var="bundle"/>

    27. 修改widget:component的屬性: ?

    <widget:component id="main" buttonLabel ="#{bundle.buttonLabel}"
    greeting="Hello #{greetingBean.name}!" />

    ???

    ?

    現(xiàn)在兩個(gè)屬性都通過el來產(chǎn)生了,一個(gè)來自于 bundle resource file, 一個(gè)來自于 backing bean.

    如果你創(chuàng)建,部署,啟動(dòng)該程序,你可以看到該程序現(xiàn)在使用的按鈕標(biāo)簽了:

    OK,我們已經(jīng)在JSF環(huán)境中參數(shù)化了GWT widget的數(shù)據(jù). 因此你可以使用同樣的方法用數(shù)據(jù)初始化該 ?widget? .然而目前這一切看起來想一張單程車票( one-way ticket).我們還沒有提到一個(gè)非常重要的方面 .

    posted on 2006-09-07 08:31 冰雨 閱讀(1222) 評(píng)論(0)  編輯  收藏 所屬分類: Opensource

    JSF中文技術(shù)文摘
    主站蜘蛛池模板: 日本特黄特黄刺激大片免费| 亚洲AV无码欧洲AV无码网站| 成年女人午夜毛片免费视频| 91精品免费国产高清在线| 亚洲精品免费在线| 免费看国产精品3a黄的视频| 日韩免费视频网站| 亚洲日韩在线观看免费视频| 亚洲第一黄片大全| 国产成A人亚洲精V品无码| 91亚洲精品视频| 亚洲精品无码成人| 国产精品无码永久免费888| 免费A级毛片无码视频| 成人国产mv免费视频| 亚洲一区综合在线播放| 国产精品亚洲精品久久精品| 在线观看片免费人成视频无码| 国产成人免费午夜在线观看| 国产午夜无码视频免费网站| 亚洲成人中文字幕| 免费看一级一级人妻片| 24小时免费看片| 国产AV无码专区亚洲AV漫画| 99久久国产免费中文无字幕| 亚洲国产精品成人久久蜜臀| 亚洲一卡二卡三卡四卡无卡麻豆| 免费无码又爽又刺激高潮软件| 女性无套免费网站在线看| 久久精品国产亚洲Aⅴ香蕉 | 久久精品免费一区二区| 久久99亚洲综合精品首页| 亚洲AV日韩AV永久无码色欲| 久久久久成人片免费观看蜜芽| 亚洲黄片毛片在线观看| 亚洲大尺度无码无码专线一区| 毛片免费观看视频| 亚洲中文字幕无码一去台湾| 黄页网站在线看免费| 亚洲日韩乱码久久久久久| 91成人免费观看|