1

在早期的项目中,当取消某些东西时,我经常使用 Seam 2 中的 s:button 或 s:link,因为它不会提交表单,因此不会发生模型更新。

现在我切换到 WELD + Seam 3 并且再也找不到它了 - 我只是盲目还是我必须使用其他东西?

格齐弗

4

2 回答 2

5

您可以通过将immediate属性设置trueh:commandButton.

来自 MyFaces 维基:

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

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

允许 commandLink 或 commandButton 触发后端逻辑,同时忽略屏幕上某些字段的验证。这是上述项目的更通用版本。

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

于 2011-07-28T12:27:50.797 回答
0

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

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

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

于 2011-07-21T09:56:32.453 回答