输入字段的自定义facelet组件

时间:2010-02-08 12:17:22

标签: java jsf facelets icefaces

我正在创建一个包含大量输入字段的“大”表单。 为了方便起见,我尝试创建一个facelet组件,它封装了用于创建一个包含两个columsn的表的代码,其中第一个col包含标签,第二个col包含输入字段。

包含该组件的标签如下所示:

<ft:textInput cid="city" label="City:" 
       value="#{registrationBean.deal.city> }" />

textInput组件的源代码(简化):

  <param name="inputField" value="#{value}" />
    <ice:inputText id="#{cid}" value="#{inputField}"                             
                required="true">        
    </ice:inputText>

虽然表单看起来很安静但我遇到的问题是用户的值不会写回bean中。我认为原因是#{registrationBean.deal.city}只被评估一次,但是在提交表单时没有。我想我在推理方面有一些严重的错误,但我找不到关于此的好文件。

感谢任何提示。

2 个答案:

答案 0 :(得分:0)

我不确定为什么就是这种情况,因为我不经常使用f:param标签,但你可以设置

<ice:inputText id="#{cid}" value="#{value}" required="true"/>

直接。这就是我的工作,而且效果很好。

答案 1 :(得分:0)

您也可以考虑使用panelGrid和/或panelGroup标签来定义自己的html表。这有助于更好的维护。