我有两个 xhtml 页面和两个托管 bean。
在第一页我有一个主题列表(来自数据库表的记录 - 第二列包含 <h:commandLink>
标签):
部分精简代码:
<rich:column><h:outputText value="#{item.id}"/></rich:column>
<rich:column><h:outputText value="#{item.createdBy}"/></rich:column>
<rich:column>
<h:commandLink value="#{item.topic}" action="#{myTools.setMenuItem('posts')}"/>
</rich:column>
我正在使用 action="#{myTools.setMenuItem('posts')}"
重定向到页面 posts.xhtml。
如何传递参数 "#{item.id}"
能够找到具有给定 ID 的主题的所有帖子?
更新(使用数据模型): 这可能是这样的:
<h:commandLink value="#{item.topic}" action="#{myTopic.submit}">
public String submit()
{
topic = model.getRowData();
return "/posts.xhtml?faces-redirect=true&id=" + topic.getId();
}
但我仍然不知道如何通过 topic.getId()
参数到另一个 bean (MyPosts)..?
最佳答案
也传过去吧
例如
<h:commandLink value="#{item.topic}" action="#{myTools.navigate('posts', item.id)}"/>
与
public String navigate(String menuItem, Long id) {
this.menuItem = menuItem;
return menuItem + "?faces-redirect=true&id=" + id;
}
bean 不需要也不应该位于 session 范围内。 View 范围很好。否则,最终用户在多个浏览器选项卡/窗口中与同一页面交互时将面临不直观的行为。
关于java - JSF - 重定向到页面并记住参数 ID 以进行搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7899518/