隨筆-112  評論-73  文章-0  trackbacks-0

          JSF 的組件和組件樹的概念非常好,可以完全通過JAVA代碼實現的組件的生成與設置方法等操作.尤其是JSF1.2提供了更多的組件的Binding方法.下面就實際做一個例子.

          首先在managedBean中創建組件

          1、創建按鈕

          private HtmlCommandButton button = new HtmlCommandButton();

          public HtmlCommandButton getButton() {
          button.setValue("button"); //設置按鈕上顯示的值
          FacesContext context = FacesContext.getCurrentInstance();
          ELContext elContext = context.getELContext();
          ExpressionFactory ef = context.getApplication().getExpressionFactory();
          Class[] c = new Class[0];
          // c[0] = ActionEvent.class; //此處想調用一個帶參數的方法,沒有成功
          MethodExpression me = ef.createMethodExpression(elContext,
          "#{testBean.testEl}", Void.TYPE, c);
          button.setActionExpression(me); //為鈕加入一個響應的方法,這種方法是JSF1.2方式的

          return button;
          }

          //在運行時被調用的方式,同前面的方法綁定中的EL表達是一致的.

          public void testEl() {
          System.out.println("testEl method is run no param");
          }

          在JSP頁面中加入按鈕.(testBean是在FacesConfig.xml中聲明的上的bean)

          <h:commandButton binding="#{testBean.button }"/>

          2、創建表格
          private HtmlPanelGrid grid = new HtmlPanelGrid();

          public HtmlPanelGrid getGrid() {
          List list = grid.getChildren();//取得表格的列表
          list.add(getHtmlInputText());//向表格列表加入組件
          System.out.println("grid column " + grid.getColumns());
          return grid;
          }

          public HtmlInputText getHtmlInputText() {
          htmlInputText.setValue("abcc");//這里直接設置值了,可以通過expressionFactory.createValueExpression(elContext, "#{testBean.userid}", String.class);來設置值表達式

          htmlInputText.setAlt("alt htmlInputText ");
          htmlInputText.setConverter(new TestConve());//為輸入框設置轉換器
          return htmlInputText;
          }

          在JSP中加入下面代碼:

          <h:panelGrid binding="#{testBean.grid }"/>

          就可以在表格內顯示一個輸入框了。


          Technorati : ,

          posted on 2008-07-01 21:39 Libo 閱讀(1438) 評論(0)  編輯  收藏 所屬分類: JavaServer Faces
          主站蜘蛛池模板: 三亚市| 嘉鱼县| 眉山市| 阳信县| 达州市| 塔城市| 米林县| 乡城县| 临清市| 嘉兴市| 敦煌市| 洪湖市| 长治市| 内黄县| 高密市| 新和县| 天长市| 靖远县| 沈丘县| 马公市| 惠来县| 牙克石市| 祁阳县| 绥江县| 五台县| 安阳县| 开江县| 万源市| 易门县| 延安市| 林周县| 芷江| 伊宁市| 裕民县| 昌平区| 宁南县| 施秉县| 金华市| 开原市| 漾濞| 通许县|