2013-08-02 61 views
0

技术操作的合法值:Java EE 6的,JSF 1.1,Ajax4jsf的用户在JSF selectOneMenu用于

我代表selectOneMenu用于给用户(下拉列表)是预先填充了所有的合法值用户可以提交。比方说,这是datevalues:

  1. 01.01.2010
  2. 01.01.2011
  3. 01.01.2012

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

问题是,是否有可能提交表单的其他值比填充列表(form.selectableDates中的值)?如果是这样的话,怎么做呢?在谷歌浏览器的开发工具中,我可以操作html并更改“runtime”值,但是当我提交时,下拉列表会刷新原始值,我必须再次提交。这是由Google Chrome还是JSF强制执行?

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

回答

2

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

+0

感谢您的信息!这很有道理。我想这在大多数web框架(spring mvc,play,wicket等)中都是很常见的行为? –