使用h:inputHidden
在页面之间发送参数的正确方法是什么?
答案 0 :(得分:3)
这在JSF中是不可能的(HTTP协议本身不能像那样工作)。你称之为页面的是JSF中的一个视图,由导航案例或结果给出。 h:inputHidden
基本上是表单的另一个输入,当提交表单时,该表单将被发送到当前视图的托管bean。
在视图之间发送参数所需的是附加到f:param
或h:button
的{{1}}标记,以便执行唯一的GET请求或在执行重定向时直接附加参数
还有可能使用2.x规范中指定的JSF闪存范围,但Mojarra尚未正确实现。在它解决之前,您可以以某种方式破解h:commandLink
bean,在那里设置您需要的参数,并在获取它们之后立即删除它们。不过,您也可以为此实现自己的自定义范围。
另见:
答案 1 :(得分:1)
此标记用于呈现HTML隐藏的输入标记:<input type="hidden" ... />
标记可用于在view和managed-bean之间发送其值。使用时,它不会通过视图出现,但它应该将占用的任何属性/参数发送到相应的视图/托管bean。但是,此标记不应该在视图之间保存和传输数据,而有其他方法可以执行(请求参数,范围会话等)。