在早期的项目中,我常常使用s:button或s:来自Seam 2的链接,因为它不会提交表单,因此不会发生模型更新。
现在我切换到WELD + Seam 3并且再也找不到它了 - 我只是失明还是我必须使用别的东西?
Geziefer
答案 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解决这个问题?