如何将h:inputText的一些ID传递给操作中的bean

时间:2011-08-30 13:25:19

标签: java jsf-2

我正在使用JSF 2.0和GF3.1

我的页面上有很多h:inputTexts,并希望根据其ID在某些条件下格式化它们的大小。

我的bean方法:

  public String doSize(Object obj) {
    if (obj.equals(...)) 
        return "5";
    else
        return "10";
  }

我的JSF页面:

....
<h:inputText id="some1" value="#{myBean.values['1']}" 
   size="{myBean.doSize(this)}" />
.... (another inputTexts) ....

我总是将null传递给bean。有没有办法传递一些能够理解我的inputText的东西?或者在其他阶段设定尺寸的方法?在哪里?

1 个答案:

答案 0 :(得分:2)

使用#{component}。它指的是当前UIComponent,它处于子类型UIInput的特定情况下。

<h:inputText id="some1" value="#{myBean.values['1']}" 
    size="#{myBean.doSize(component)}" />

您甚至可以明确传递从UIComponent#getId()获取的ID:

<h:inputText id="some1" value="#{myBean.values['1']}" 
    size="#{myBean.doSize(component.id)}" />