【问题标题】:JSF Page Navigation OptionsJSF 页面导航选项
【发布时间】:2011-02-09 20:33:53
【问题描述】:

我有一个关于 JSF 导航的问题,如果我只想做简单的页面导航,是否需要使用 faces-config.xml 中定义的重定向方法?

例如,我有第 1 页,用户单击数据表值中的行,导航到第 2 页,然后执行一些处理并返回第 1 页。

我在另一个线程here 中读到。当重定向发生时,它将重新创建请求范围 bean。

有人可以对此提供一些见解吗?那么页面到页面导航的其他可用选项是什么。

我正在使用 JSF 1.1

感谢任何帮助。

问候

【问题讨论】:

    标签: jsf request


    【解决方案1】:

    取决于您希望在页面之间传递的数据:

    • 如果数据复杂且相互关联(“向导场景”) - 使用 faces-config.xml,它将让您在页面之间传递复杂的对象;
    • 如果数据可以显示为简单的字符串(例如“product_id = 145 的详细信息页面”),只需使用普通链接(例如 /product.jsf?product_id=145)并使用面孔注入带有请求参数的 bean -config.xml 和托管属性(例如:#{param.product_id})。

    由于您坚持使用 JSF 1.1(我怀疑即使是 BalusC 也很难说它有什么好处) - 您必须在其他任何地方都力求简单。

    【讨论】:

    • 我会先尝试这种方法。如果数据可以显示为简单的字符串(例如“product_id = 145 的详细信息页面”),只需使用普通链接(例如 /product.jsf?product_id=145)并使用 faces-config 将请求参数注入 bean。 xml 和托管属性(例如:#{param.product_id})。
    【解决方案2】:

    据我所知,请求范围是在每个请求处理时创建的,代表当前请求及其参数,例如,当您单击链接 http://localhost/mypage.jps?a=b&&c=d 时,Web 服务器开始处理此请求并创建一个代表请求中提供的数据的请求范围包括这两个参数 a 等于 b 和 c 等于 d。

    jsf 导航是一个系统,它提供帮助来定义页面导航流程并从 faces-config.xml 控制它。但是,在您的情况下,对于简单的两页导航 1 -> 2 -> 1 您可以跳过这部分,因为它仅适用于两页。但是,如果您的应用程序将在页面中增长并且逐页导航将变得更加复杂,那么您可能会考虑使用面孔页面导航

    【讨论】:

    • 那么对于 JSF,当我单击数据表中的行时,页面导航的选项是什么?如果我不使用 faces-config 进行导航,在 backing bean 中传递参数会不会有任何问题?
    • 我不认为可能存在一些问题,只要确保您跨页面使用的 bean 在会话范围内而不是在请求范围内,并且您的 bean 状态将跨请求和页面保存
    • 这正是主要问题之一,我希望此页面具有请求范围。
    猜你喜欢
    • 2011-11-03
    • 1970-01-01
    • 1970-01-01
    • 2011-06-26
    • 2015-08-12
    • 1970-01-01
    • 1970-01-01
    • 2013-05-06
    • 2011-07-05
    相关资源
    最近更新 更多