開花流水

          空山無人,水流花開。

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            79 Posts :: 42 Stories :: 160 Comments :: 0 Trackbacks
          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參數為空時, 
          http://www.kpwang.com/注入時會出錯,因為一個空對象如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標簽插入一個文件時,

          http://www.kpwang.com/必須用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-06-10 17:07 開花流水 閱讀(485) 評論(0)  編輯  收藏 所屬分類: jsf

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


          網站導航:
           
          主站蜘蛛池模板: 栾城县| 阿鲁科尔沁旗| 克拉玛依市| 贵州省| 格尔木市| 彭州市| 贵溪市| 安国市| 红河县| 普洱| 东乡族自治县| 荆州市| 桂林市| 安仁县| 新余市| 郑州市| 邹城市| 巨野县| 土默特左旗| 双峰县| 莱阳市| 南皮县| 麟游县| 郯城县| 南京市| 吴堡县| 潜江市| 沁源县| 汕头市| 达拉特旗| 华蓥市| 金华市| 罗平县| 巴林左旗| 得荣县| 山丹县| 法库县| 长岭县| 安阳县| 大冶市| 上饶县|