如何使用ICEFaces导航并传递参数

时间:2009-06-18 17:59:50

标签: java jsf icefaces

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

谢谢,

2 个答案:

答案 0 :(得分:1)

所以你有一个页面A的东西和页面B与个别东西的图表。流动:导航到页面A - >仔细查看表格 - >点击页面A上的内容查看图表 - >导航到第B页 - >阅读图表。

你可以在这里做几件不同的事情。我会建议三个。

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

  

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

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

  

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

您可以使用它来获取StuffID并构建图表。这实现了关注点的良好分离,让您的图表页面只是做图表而不必担心它将从哪些bean获取图表。这是 I 亲自执行此操作的方式。

两个,你可以简单地使你的bean会话成为范围(或者如果你使用Seam或类似的话,会话范围),这样两个页面只是共享一个bean。这可能是最简单的,但您需要确保在不再需要时清理bean,因此有点危险。

三,您可以使用常规HTTP表单和POST到图表页面,使用您为第一个做的相同类型的RequestParameterMap挖掘。这与第一种方法的工作方式相同,但不是很干净,因为您需要在任何地方使用类似的表单,而且它不能是普通的超链接。

这三个人将完成你所需要的,但我的推荐也将是第一。能够通过常规超链接链接到图表页面可能非常方便。

答案 1 :(得分:0)

以及如何传递Object而不是String?