关闭SelectOneMenu内部验证

时间:2011-01-21 07:44:50

标签: jsf jsf-2

我有一个由List驱动的SelectOneMenu,每个List都包含一个对象值和一个字符串标签,以及一个转换器。一切都很标准。我最初得到了Validation Error: Value is not valid错误,因为equals方法中存在拼写错误,但快速搜索如何修复它会带来另一个问题:

我的理解是正确的,在这种情况下,会发生什么:

  1. 在菜单中选择了一个项目。
  2. 这会将字符串值发送到服务器。
  3. 转换器用于将字符串值转换为对象。
  4. JSF检查对象是否存在于项目列表中。
  5. 调用setter方法传递对象。
  6. 如果是,那么我可以禁用第4步吗?如果值无效,我的转换器将抛出ConverterException,所以对我来说,第二个列表遍历是完全没必要的。

    干杯,

    巴尼

1 个答案:

答案 0 :(得分:0)

这是设计的。这是标准网站攻击预防之一。你不能把它关掉。

只需将bean放在视图范围内(这样就不会在每个请求中重新获取,对于这种情况),或者如果它困扰你的话,寻找不太安全的MVC框架。