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

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

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

    大魚

    JSF使用注意點

    JSF使用注意點

    1.轉換時間時,必須加上時區GMT+8,不然相差一天。
    <f:convertDateTime  timeZone="GMT+8" dateStyle="long" type="date"/>
     
    2.<h:outputText value="#{productBean.view}"/>當view為空時,不顯示。
     
    3. 
    actionListener在執行了action之后再執行。
     
    可以沒有action,而只有actionListener。
     
    action可以設置成一個方法,也可以設置為一個導航用例的<from-outcome>
    多個頁面如果使用了同一個request級的backingBean,可能導致一些莫名其妙的問題。如:不能執行指定的Action.
     
    4.對于向managed-bean的屬性注入request參數時,其<managed-bean-scope>必須為request,<property-class>不要為值類型(如果是值類型,當指定的request參數為空時,注入時會出錯,因為一個空對象如Integer null不能自動轉換為一個值類型如int的0)。如下所示:
    <managed-bean>
       <managed-bean-name>productBean</managed-bean-name>
       <managed-bean-class>demo.view.ProductBean</managed-bean-class>
       <managed-bean-scope>request</managed-bean-scope>
       <managed-property>
        <property-name>id</property-name>
        <property-class>java.lang.Integer</property-class>
        <value>#{param.id}</value>
       </managed-property>
       <managed-property>
        <property-name>view</property-name>
        <property-class>java.lang.Boolean</property-class>
        <value>#{param.view}</value>
       </managed-property>
      </managed-bean>
     
    5.對于以下查找是按部件id查找的,不是按參數名稱查找的。
    UIParameter uip =(UIParameter)event.getComponent().findComponent("productId");
    //event是actionListener中的參數ActionEvent類型。
    所以
    <h:commandLink action="view">
    <f:param id="productId" name="id" value="#{product.id}"/>
    </h:commandLink>
    <f:prarm>必須設置id
     
    Map params = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
    String someValue = params.get("id");

    這個是按參數名稱查找的
    JSF標簽只是JSF組件的外衣,Id就是組件的命名,與Delphi的組件名是一樣的,之所以用Id不用Name,是為了與HTML中的一致(HTML input組件 id是其標識,name是其傳遞到服務器端的參數名。),所以查找JSF組件當然用Id了。
     
    6.當一個頁面的BackingBean的構造函數中運行出錯或屬性注入出錯時,表面上會報計算表達式錯誤,原因是這個BackingBean沒有構造出來,為空,當然在Reader頁面時會沒有辦法求相關的表達式的值。
     
     
    7.request級的BackingBean在從客戶端到服務端一次請求后,就被銷毀。在這次請求中,只會被創建一次。在Forward之前創建的BackingBean在Forward之后,并不會被再次創建。
     
    8.判斷是否是回傳。
    protected boolean isPostBack()
     {
      if (FacesContext.getCurrentInstance().getRenderResponse())
       return false;
      else
       return true;
     }
     
     
    9.<f:view>里使用<jsp:include>時的注意事項
    感謝 tdwebber 提供。

    1) When using a jsp:include within the f:view tags, must include f:subview in the included file (or around the jsp:include tag).

    當在f:view中使用jsp:include標簽插入一個文件時,必須用f:subview把jsp:include包起來

    2) In the include file, cannot have any HTML. All HTML tags must be wrapped in f:verbatim tags.

    在被插入的文件中,不能有任何的html標簽,如果必須使用html標簽,必須用f:verbatim將它包起來。

    3) Within main f:view tags however, it is not necessary to wrap everything in f:verbatim tags (it's not bad either). Just HTML that appears as children to other JSF components (i.e. t:newspaperTable).

    在主f:view中,沒有必要用f:verbatim將html標簽包起來(當然包起來也可以)。當html標簽出現在子視圖或其它JSF部件標簽中時,就要用f:verbatim包起來。

    10.JSF的緩存能力好像太強了,有時停止了服務器,改動了jsp頁面中的jsf標簽,再啟動服務器,但到該頁面時,還是原來的內容,需要手動刷新一下。有時需要先轉到別的頁面,再回來刷新一下才能看到更新的內容。

    posted on 2009-10-25 22:50 大魚 閱讀(192) 評論(0)  編輯  收藏 所屬分類: JSF

    主站蜘蛛池模板: 羞羞视频免费网站含羞草| 4444www免费看| 亚洲永久在线观看| 国产成人精品日本亚洲语音 | 亚洲国产系列一区二区三区| 大桥未久亚洲无av码在线| 国产精品久久久久久久久久免费| 亚洲乱码一二三四区国产| 69堂人成无码免费视频果冻传媒| 亚洲不卡中文字幕| 成年私人影院免费视频网站| 亚洲色成人WWW永久网站| 中文字幕免费在线看线人动作大片 | 亚洲va在线va天堂va不卡下载| 亚洲av产在线精品亚洲第一站| 1000部拍拍拍18勿入免费凤凰福利| 亚洲毛片免费观看| 在线观看免费视频一区| 韩国二级毛片免费播放| 美女黄频a美女大全免费皮| 亚洲av中文无码| 免费国产成人α片| 亚洲成a人片在线看| 日韩在线看片免费人成视频播放| 国产一区二区三区亚洲综合| 91精品免费不卡在线观看| 亚洲一区精彩视频| 亚洲免费网站观看视频| 日韩精品亚洲人成在线观看 | 亚洲黄色免费网址| 久久久精品国产亚洲成人满18免费网站 | 狼人大香伊蕉国产WWW亚洲| 日韩一卡2卡3卡4卡新区亚洲| 亚洲区日韩精品中文字幕| 免费人成网站在线播放| 亚洲AV无码一区二区一二区 | 91黑丝国产线观看免费 | 久久精品国产亚洲AV无码娇色| 在线观看免费大黄网站| 亚洲免费一级视频| 亚洲精品无码你懂的网站|