0

技术:Java EE 6、JSF 1.1、ajax4jsf

我代表一个 selectOneMenu 给用户(下拉列表),它预先填充了用户可以提交的所有合法值。假设它是日期值:

  1. 01.01.2010
  2. 01.01.2011
  3. 01.01.2012

下拉列表中的选定值绑定到支持对象 (form.chosenDate) 上的属性,并且从支持对象 (form.selectableDates) 上的列表中检索列表中的值。当用户选择不同的值时,form.chosenDate 用 a4j 更新。

问题是,用户是否可以使用列表填充的其他值(form.selectableDates 中的值)提交表单?如果是这样,怎么办?在 Google Chrome 的开发工具中,我可以操作 html 并更改值“运行时”,但是当我提交时,下拉列表会刷新为原始值,我必须再次提交。这是由 Google Chrome 或 JSF 强制执行的吗?

这个问题也适用于单选按钮。请赐教!

4

1 回答 1

2

是的,用户可以提交不在下拉列表中的值。例如,Firefox 的篡改数据插件可以做到这一点。但是,它将无法通过 JSF 验证,因为已根据列表检查提交的值以查看它是否包含在其中。用户将收到“表单:位置:验证错误:值无效”错误消息。

于 2013-08-02T09:46:23.030 回答