java - 如何使用 ICEFaces 进行导航并传递参数

标签 java jsf icefaces

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

谢谢

最佳答案

因此,页面 A 包含内容表,页面 B 包含各个内容的图表。流程是:导航到页面 A -> 查看表格 -> 单击页面 A 上的某些内容以查看图表 -> 导航到页面 B -> 阅读图表。

您可以在这里执行几项不同的操作。我会推荐三个。

一,您可以使图表页面 RESTful 并传入您要绘制图表的内容的 ID。 IE,您页面上的一栏将包含:

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

然后在图表页面的支持 bean 中,您可以使用 JAX-RS 传入页面参数,也可以挖掘请求对象,即:

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

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

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

第三,您可以使用常规 HTTP 表单并 POST 到图表页面,使用与第一条相同的 RequestParameterMap 挖掘。这与第一个方法的工作方式相同,但不太干净,因为您在任何想要执行此操作的地方都需要类似的表单,并且它不能是普通的超链接。

这三个可以满足您的需求,不过,我的推荐将是第一。能够仅使用常规超链接链接到图表页面可能会非常方便。

关于java - 如何使用 ICEFaces 进行导航并传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1014248/

相关文章:

java - 如何知道回滚已经执行了? [@交易]

java - android浏览器javascript问题

jsf - 我可以在 JSF 2.2 中使用 JSF 2.0 兼容的组件库吗

java.lang.OutOfMemoryError : PermGen space on web app usage 错误

java - ArrayList语法错误

jsf - ResourceDependency 注释在 UIComponent 中不起作用,并在 src 中生成 "RES_NOT_FOUND"错误

jsf - 如何在弹出面板中提交值?

java - 缺少 "ice:column"的开始标记

java - 无法修改 h :inputText if it's enabled

java - 子类调用父类的方法