技术:Java EE 6,JSF 1.1,ajax4jsf
我代表一个selectOneMenu给用户(下拉列表),它预先填充了用户可以提交的所有合法值。让我们说出它的日期值:
下拉列表中的选定值绑定到后备对象(form.chosenDate)上的属性,列表中的值将从后备对象(form.selectableDates)上的列表中检索。当用户选择不同的值时,form.chosenDate用a4j更新。
问题是,用户是否可以使用除填充列表之外的其他值(form.selectableDates中的值)提交表单?如果是这样的话,怎么办呢?在谷歌浏览器的开发工具中,我可以操作html并更改值"运行时",但是当我提交时,下拉列表会刷新原始值,我必须再次提交。这是由谷歌Chrome或JSF强制执行的吗?
问题还在于无线电按钮。请赐教!
答案 0 :(得分:2)
是的,用户可以提交不在下拉列表中的值。例如,Firefox的篡改数据插件可以做到这一点。但是,它将无法通过JSF验证,因为将根据列表检查提交的值以查看它是否包含在列表中。用户将收到“表单:位置:验证错误:值无效”错误消息。