dataTable,inputText和“非直接”bean变量的值保存

时间:2011-09-01 11:54:47

标签: jsf-2

我有一个带有inputTexts列表的dataTable:

<h2>
    Attributes
</h2>
<h:dataTable
    value="#{detailModel.getAfterObjectAttributeSpecifications()}"
    var="specification"
    styleClass="waiFormTable" >
    <h:column>
        #{specification.name}:
    </h:column>
    <h:column>
        <h:inputText id="attribute" value="#{detailModel.getAfterObjectAttribute(specification.name)}" disabled="#{detailModel.mode == detailModel.viewMode}"/>  
    </h:column>
</h:dataTable>

inputText的值不是直接bean字段(detailModel.getAfterObjectAttribute(specification.name))。 如果我更改了值并希望保存,我该怎么办?

感谢您的帮助 弗朗西斯

1 个答案:

答案 0 :(得分:1)

你做不到。它必须是不动产或至少Map值。 E.g。

<h:dataTable
    value="#{detailModel.afterObjectAttributeSpecifications}"
    var="specification"
    styleClass="waiFormTable" >
    <h:column>
        #{specification.name}:
    </h:column>
    <h:column>
        <h:inputText id="attribute" value="#{detailModel.afterObjectAttributes[specification.name]}" disabled="#{detailModel.mode == detailModel.viewMode}"/>  
    </h:column>
</h:dataTable>

public Map<String, String> getAfterObjectAttributes() {
    return afterObjectAttributes;
}