0

我正在创建一个带有很多输入字段的“大”表单。为了让事情变得更容易,我尝试创建一个 facelet 组件,它封装了用于创建具有两个列的表的代码,其中第一个列包含标签,第二个列包含输入字段。

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

<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} 只评估一次,而不是在提交表单时评估。我想我在这里的推理有一些严重的错误,但我找不到关于那个的好文档。

感谢您的任何提示。

4

2 回答 2

0

我不确定为什么会这样,因为我不经常使用 f:param 标签,但你可以设置

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

直接地。这就是我所做的,而且效果很好。

于 2010-02-08T14:16:54.310 回答
0

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

于 2010-02-11T23:03:45.500 回答