JSF:当禁用组件时,其值不会进入请求映射参数。有解决方法吗?

时间:2012-04-05 01:47:29

标签: java jsf primefaces

我有一个下拉列表p:selectonemenu和一个复选框p:selectbooleancheckbox,当我选中该复选框时,我想将selectonemenu设置为特定值。我不希望用户更改它,因此我将selectonemenu disabled属性设置为true。但是,当它被禁用时,它的值不会出现在请求参数映射中,当我执行facescontext.getcurrentinstance().getexternalcontext().getrequestparametermap()时,我需要它的值到此映射。有办法解决这个问题吗?

我将一个font-end写入一个旧的Servlet系统,在那里他们使用请求映射参数来获取表单属性值。

1 个答案:

答案 0 :(得分:8)

正如Adrian Mitev在评论中指出的那样,禁用selectBooleanCheckbox组件意味着它不会在表单提交上发布其值。

但是你可以做的是有一个隐藏的输入字段,你可以在其中将值设置为与复选框相同的托管bean属性。

<h:inputHidden id="checkDisabled" value="#{managedBean.someValue}" />

使用javascript,您可以在禁用该复选框时设置此隐藏输入的值。