我可以用JSF param标签“传递”一个对象吗?
我正在寻找的是在value属性中有一个f:param标签,其中包含我自己选择的Object。 然后,在操作的支持bean方法中,我希望能够从请求中提取此Object。 (对不起,如果我的术语不是很好,我是JSF的新手)。
现在,我可以在请求参数中传递Strings就好了。 我也意识到参数总是在http get或post中成为一个String,所以我并没有真正传递一个java对象。 我也意识到,这样做的一种方法是传递某种“id”,然后支持bean可以使用它来识别有问题的对象。
然而,我想知道的是,JSF是否允许我透明地执行此操作。 我可以指定任何对象作为参数的值,然后在动作方法中从RequestMap中获取它吗?
你不能用
做到这一点。 它需要附加到请求的URL,因此它确实需要是一个String
。 只需使用
。
例如
这样#{otherBean}
就可以作为this.otherBean
在submit()
方法中使用。 这样你也不需要搞乱请求参数映射(对于
我宁愿使用#{param.name}
来使用托管属性注入 )。
替代方案是将
与Converter
结合使用或使用Tomahawk的
。 另请参阅此博客文章以获取更多背景信息和示例。