问题描述:
目前我所实验过的h:selectOneMenu的每个f:selectItem如果被选中,当表单提交后h:selectOneMenu就有值了,即使选中的f:selectItem 的itemDisabled="true"也照样会被提交,这样就不是我们想要的了,比如我们的下拉项中的第一个是“---请选择--”,这表明我们还没有选择,那么提交后选择框是不应该有值的。
解决办法:
在该值的set方法中判断,如果是“--请选择--”选项对应的值就不直接放回,这样它的值就还是null,相当与没有选择任何选项。
<h:selectOneMenu value="classA.type">
<f:selectItem itemVlue="0">请选项</f:selectItem>
<f:selectItem itemVlue="1">选项1</f:selectItem>
</h:selectOneMenu>
public void setType(String type){
if("0".equals(type))return;
this.type=type;
}
希望的解决办法:
1)itemDisabled="true"属性起到作用,选择后不会提交
2)给h:selectOneMenu增加个属性,说明第几项开始后的选项才会被提交。
以前用过的webwork中下来组件有这种功能,可能selectOneMenu也可以,请高手们执教如何使用。