Jsf 如何为包含的组件定义自定义导航规则?

Jsf 如何为包含的组件定义自定义导航规则?,jsf,parameter-passing,facelets,uiinclude,Jsf,Parameter Passing,Facelets,Uiinclude,我正在尝试使用include a组件(使用ui:include)并为调用者页面设置导航规则。所包括的组件具有一种形式;提交时,我想显示一条反馈信息(如咆哮),并有条件地再次显示包含的面板 实现这一点的最佳方法是什么?您可以使用让调用者为指定自定义参数 <ui:include ...> <ui:param name="foo" value="..." /> </ui:include> 等等,您说您需要一个导航规则来有条件地重新呈现?听起来好像您已经在使

我正在尝试使用include a组件(使用
ui:include
)并为调用者页面设置导航规则。所包括的组件具有一种形式;提交时,我想显示一条反馈信息(如咆哮),并有条件地再次显示包含的面板

实现这一点的最佳方法是什么?

您可以使用
让调用者为
指定自定义参数

<ui:include ...>
    <ui:param name="foo" value="..." />
</ui:include>

等等,您说您需要一个导航规则来有条件地重新呈现
?听起来好像您已经在使用Ajax,并且希望保持在同一页面中,只更新其中的一部分。那么为什么需要导航规则呢?
ui:include
组件有一个提交表单;提交时,
h:commandButton
action
运行一些业务逻辑,此时我想显示一条反馈消息(在页面级别)
action
方法返回
success
/
error
,以便重新加载页面(尽管失去了表选择状态)。你对Ajax的看法:我不知道如何通过Ajax控制父页面的组件(调用
ui:include
)好的。我直截了当地回答了这个问题,但这并不意味着这是你真正需要的“最佳”方法。这将是一个太长的故事。从一个包含Ajax概念的JSF2书开始,我接受这个假设,假设调用方组件作为参数返回令牌列表(通过包含组件的动作),适当地映射错误和成功案例-我不认为它是一个优雅的解决方案,但是它完成了任务。ThanksA自定义标记或复合标记(如
)确实比
更优雅,但是您特别要求
。正如我在前面的评论中提到的,请再次参阅,从一本好的JSF2书籍开始。这里介绍了这些知识。这个解决方案的导航功能对我来说并不像Expected那样有效(当使用复合组件时)-我在这里创建了另一个问题。导航规则是否需要其他配置?
<h:commandButton ... action="#{bean.submit(foo)}" />