f:viewParam(UIViewParameter)和immediate属性

时间:2013-06-10 17:56:39

标签: jsf-2

我有一个页面用于编辑持久性实体的某些字段。该页面采用GET请求参数,该参数是我的实体的持久ID。

    <f:metadata>
        <f:viewParam name="streamid" value="#{editStreamController.stream}"
            converter="#{editStreamController.streamConverter}" />
    </f:metadata>

转换器用于通过从持久性服务加载id来将id转换为实体,如所描述的那样。 in here

该页面包含用于编辑“ stream ”实体的某些字段的表单。我使用OmniFaces <o:form includeViewParams="true">以便在表单的action字符串中包含我的GET参数:

<o:form includeViewParams="true" >
...
    <h:inputText id="name" value="#{editStreamController.stream.name}" >
        <f:validator binding="#{editStreamController.validator}" />
    </h:inputText>
...

在某些情况下,当发布表单时,负责实体的f:viewParam和处理实体字段的h:inputText必须通过解码,验证和模型更新阶段,以便实体首先可用,然后更新其字段。对f:viewParam "#{editStreamController.stream.name}" {{}}}来说,为了首先设置它的值是很自然的,因此以后要避免使用像immediate这样的值的UIInputs的空指针问题。但是,根据to set immediate="true"UIViewParameter设置与immediate无关。

那么为什么UIViewParameter设置无法为{{1}}配置,是否有针对这种情况的解决方法?非常感谢提前!

0 个答案:

没有答案