上下文:其中一个应用程序有一个xhtml表单,其中文本区域将呈现为禁用字段。
问题:当用户提交表单时,与该字段关联的转换器不会被调用,但在未禁用文本区域时工作正常。 这是JSF请求/响应生命周期的工作方式,还是我错过了什么?
伪代码:
<tag:field id="xyz" label="abc" value="#{something.something}"
disaply="mutable" required="false" styleClass="Text_Area"
disabled="#{somethingelse.something}" rows = "4" cols="50"
converter="freeTextConverter">
</tag:field>
答案 0 :(得分:2)
根据HTML specification,已禁用的输入字段的值与表单提交一起发送不。因此,JSF只是将null
作为值,并且没有任何内容可以转换。您可能想要使用readonly
。这样,该值不可编辑,但会与表单提交一起发送。您只需要考虑客户端仍然可以篡改请求并在发送之前编辑该值。您可能希望将值存储在视图范围的bean中,并保持字段禁用。