【问题标题】:How to navigate with ICEFaces and pass parameters如何使用 ICEFaces 导航并传递参数
【发布时间】:2010-11-04 02:17:53
【问题描述】:

我正在使用 JSF/ICEFaces。我有一个包含许多行的表格,我有另一个显示图表的页面。我想在每一行都有一个图标来绘制该特定组合的图表。我知道通过返回字符串导航规则来使用 JSF 进行常规导航。但是,我不确定如何将参数从与该行对应的 bean 传递给绘制图表的 bean。你知道我可以解决这个问题吗?

谢谢,

【问题讨论】:

    标签: java jsf icefaces


    【解决方案1】:

    因此,您的页面 A 带有材料表,页面 B 带有单个材料的图表。流程是:导航到页面 A -> 浏览表格 -> 单击页面 A 上的某些内容以查看图表 -> 导航到页面 B -> 阅读图表。

    您可以在这里做一些不同的事情。我会推荐三个。

    一,您可以将图表页面设为 RESTful,并传入您要绘制图表的内容的 ID。 IE,您页面上的一列将具有:

    <ice:outputLink value="/chartPage?stuffID=#{iterator.stuffID}">Review Chart</ice:outputLink>

    那么在你的图表页面的backing bean中你可以使用JAX-RS来传入页面参数也可以疏通请求对象,即:

    (FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("stuffID)

    您可以使用它来获取 StuffID 并构建图表。这实现了良好的关注点分离,让您的图表页面只做图表,而不必担心它将从哪些 bean 中获取图表。这是个人会这样做的方式。

    二,您可以简单地使您的 bean 会话范围(或者,如果您使用 Seam 或类似的,则对话范围),以便两个页面简单地共享一个 bean。这可能是最简单的,但您需要确保在不再需要 bean 时将其清理干净,因此有些危险。

    三,您可以使用常规 HTTP 表单并 POST 到图表页面,使用与第一个相同类型的 RequestParameterMap 疏浚。这与第一条的工作方式相同,但并不像您在任何地方都需要类似的表格那样干净,而且它不能是普通的超链接。

    这三个可以满足您的需求,但我的建议还是第一。能够使用常规超链接链接到图表页面可能会非常方便。

    【讨论】:

      【解决方案2】:

      以及如何传递对象而不是字符串?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-06-08
        • 1970-01-01
        • 1970-01-01
        • 2013-10-04
        • 1970-01-01
        • 2021-12-02
        • 1970-01-01
        相关资源
        最近更新 更多