我正在使用以下(示例)
<h:commandButton value="Submit" action="#{indexBean.submit}"
actionListener="#{indexBean.btnListener}" >
<f:attribute name="valueOne" value="v1" />
<f:attribute name="valueTwo" value="v2" />
<f:attribute name="valueThree" value="v3" />
</h:commandButton>
当页面呈现时,我正在通过浏览器查看源代码,但我无法在某些隐藏字段或其他任何内容中找到值。
它们是存储在服务器端的后端,处于视图状态还是其他位置?
祝福,
答案 0 :(得分:0)
它们存储为相关组件的属性。它们不会生成在生成的HTML输出中,因为组件的渲染器不会将它们识别为标准HTML属性。
该组件又存储在服务器端内存的组件树中,如果它涉及UIForm
,UIInput
或UICommand
组件,那么它也存储在视图状态中
如果要传递可见参数,则应该使用<f:param>
。然后,它们将在组件的HTML表示的生成的JavaScript onclick
函数中可见。 请注意,自{JSF 2.0}以来,<f:param>
中的<h:commandButton>
才受支持。