我可以用JSF param标签“传递”一个对象吗?

我正在寻找的是在value属性中有一个f:param标签,其中包含我自己选择的Object。 然后,在操作的支持bean方法中,我希望能够从请求中提取此Object。 (对不起,如果我的术语不是很好,我是JSF的新手)。

现在,我可以在请求参数中传递Strings就好了。 我也意识到参数总是在http get或post中成为一个String,所以我并没有真正传递一个java对象。 我也意识到,这样做的一种方法是传递某种“id”,然后支持bean可以使用它来识别有问题的对象。

然而,我想知道的是,JSF是否允许我透明地执行此操作。 我可以指定任何对象作为参数的值,然后在动作方法中从RequestMap中获取它吗?

你不能用做到这一点。 它需要附加到请求的URL,因此它确实需要是一个String 。 只需使用

例如

    

这样#{otherBean}就可以作为this.otherBeansubmit()方法中使用。 这样你也不需要搞乱请求参数映射(对于我宁愿使用#{param.name}来使用托管属性注入 )。

替代方案是将Converter结合使用或使用Tomahawk的 。 另请参阅此博客文章以获取更多背景信息和示例。