隨筆-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
          主站蜘蛛池模板: 项城市| 缙云县| 皋兰县| 隆回县| 得荣县| 信丰县| 政和县| 三明市| 石柱| 天祝| 芮城县| 长治县| 丰台区| 阳泉市| 沿河| 教育| 奇台县| 西畴县| 贵溪市| 姜堰市| 高雄市| 南丰县| 林西县| 从江县| 禹城市| 巫溪县| 文登市| 兴文县| 塔河县| 峡江县| 略阳县| 原平市| 芦溪县| 信宜市| 盐亭县| 紫阳县| 布拖县| 金阳县| 芦溪县| 莲花县| 凤城市|