Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JSF组件值在提交时未正确更新到模型_Jsf_Facelets_Jsf 1.2_Myfaces - Fatal编程技术网

JSF组件值在提交时未正确更新到模型

JSF组件值在提交时未正确更新到模型,jsf,facelets,jsf-1.2,myfaces,Jsf,Facelets,Jsf 1.2,Myfaces,我有一个facelets页面,其中有一个控件通常在默认情况下被禁用,即。E当页面首次呈现给客户端时。这由EL表达式确定: disabled="#{referenceValue != requestbean.dependentControlValue}" id="notWorking" 呈现页面后,用户可以将requestbean.dependentControlValue设置为referenceValue,并通过依赖控件的一些Javascript启用组件“notWorking” 但是,在提交表

我有一个facelets页面,其中有一个控件通常在默认情况下被禁用,即。E当页面首次呈现给客户端时。这由EL表达式确定:

disabled="#{referenceValue != requestbean.dependentControlValue}" id="notWorking"
呈现页面后,用户可以将
requestbean.dependentControlValue
设置为
referenceValue
,并通过依赖控件的一些Javascript启用组件“notWorking”

但是,在提交表单时,
notWorking
的值不会通过在setter中为该值添加调试日志消息而得到更新。我可以看到,
notWorking
的值是在使用firefox检查请求时设置的

问题: 我做错了什么

顺便说一下:
我知道,根据HTML规范,由于对StackOverflow的研究,禁用的控件不可能成功

此外,我从中了解到,在更新模型值之前会考虑
禁用的
呈现的
表达式,但我认为在提交表单时,禁用的表达式应计算为
false

我做错了什么

使用JavaScript而不是JSF重新启用输入

作为JSF针对篡改/黑客HTTP请求的内置保护措施的一部分,在处理表单提交期间,将重新评估
disabled
属性(如
rendered
readonly
属性)。如果他们的评估方式是完全不应处理该值(即
禁用/只读=真
呈现=假
),则提交的值将不会应用、转换、验证,模型也不会更新


解决方案是使用JSF而不是JavaScript来重新启用输入,或者以这种方式重写
disabled
属性中的条件,以便
disabled
属性在处理表单提交时计算
false

感谢@BalusC,特别是修改您的答案以准确回答我的问题因此,使用JSF2,我只需使用从依赖控件触发的部分请求,并重新呈现
notWorking
组件。我如何使用jsf1.2实现您的解决方案?