JSF:没有表单提交的按钮/链接

时间:2011-07-20 20:25:28

标签: jsf seam java-ee-6 jboss-weld

在早期的项目中,我常常使用s:button或s:来自Seam 2的链接,因为它不会提交表单,因此不会发生模型更新。

现在我切换到WELD + Seam 3并且再也找不到它了 - 我只是失明还是我必须使用别的东西?

Geziefer

2 个答案:

答案 0 :(得分:5)

您可以通过在immediate中将true属性设置为h:commandButton,在纯JSF 2.0中执行此操作。

来自MyFaces wiki:

  

immediate属性可用于实现以下效果:

     

允许commandLink或commandButton将用户导航到   另一个页面没有处理当前输入字段中的任何数据   当前的屏幕。特别是,这允许进行导航   即使当前存在验证错误。一个“取消”按钮   通常属于这一类。

     

允许commandLink或commandButton触发后端逻辑   而忽略了屏幕上某些字段的验证。这个   是上述项目的更一般版本。

     

使一个或多个输入组件“高优先级”进行验证,   因此,如果其中任何一个无效,则不执行验证   对于同一页面中的任何“低优先级”输入组件。这个可以   减少显示的错误消息数。

答案 1 :(得分:0)

我找到了一种方法来处理它,使用RichFaces 4中的commandButton并将bypassUpdates设置为true:

<a4j:commandButton value="Cancel" action="#{myHandler.cancel}"
bypassUpdates="true" render="myTable" />

对我来说这个解决方案还可以,因为我已经在使用RichFaces 4 - 但我仍然感兴趣,如何用标准的JSF 2.0解决这个问题?