【问题标题】:Using navigation rules inside a jsf bean在 jsf bean 中使用导航规则
【发布时间】:2013-10-22 19:35:38
【问题描述】:

我创建了一个 bean 来搜索一个 sql 表。该 bean 生成一个显示在 Rich:dateTable 中的数组列表。对于此表中的每一行,都有一个列是指向另一个页面的链接,该页面指定要显示表中的哪条记录,例如:

<h:link id="profile_last_name" value="#{record.string}" outcome="#{search.action()}">
     <f:param name="user_id" value="#{record.getInteger('user_id')}"/>
</h:link>

搜索 bean 被传递一个导航结果,例如"staffEditUser" 创建如下 URL:

http://localhost:8080/staff/edit/user.xhtml?user_id=98

我想更改搜索 bean,以便如果搜索结果中只有一行,它会立即转到编辑页面。如果我知道目标页面名称但我不知道,我知道如何进行重定向;我在搜索 bean 中所知道的只是导航结果。有没有办法从 bean 内部访问导航规则?

另外,这对我来说似乎很笨拙,我可以简单地将参数添加到将由 jsf 导航处理的 xhtml 文件中的重定向吗?如果有,怎么做?

非常感谢您的帮助。

【问题讨论】:

    标签: jsf-2


    【解决方案1】:

    你可以在你的托管 bean 方法中重定向 JSF 页面

    FacesContext.getCurrentInstance().getExternalContext().redirect("url");
    

    据我了解。如果返回的结果大小为 none,则应检查 ManagedBean 数据库读取方法内部,然后重定向到此记录的编辑页面。

    【讨论】:

    • 也许我不清楚,但我的问题是我不知道 url 是什么。我所知道的只是一个导航案例的结果是什么。我想要做的是找到导航案例映射到的 url。或者,如果我可以获得通过导航模型的重定向代码,我可以通过渲染而不是渲染面板来破解 xhtml。从哲学和美学上讲,这是错误和丑陋的,但如果它有效......
    猜你喜欢
    • 1970-01-01
    • 2014-02-20
    • 2015-01-01
    • 1970-01-01
    • 2014-04-26
    • 1970-01-01
    • 2016-05-24
    • 2011-07-05
    • 2012-05-04
    相关资源
    最近更新 更多