f:属性名称/值对存储在哪里?

时间:2011-09-12 22:07:33

标签: jsf

我正在使用以下(示例)

<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>

当页面呈现时,我正在通过浏览器查看源代码,但我无法在某些隐藏字段或其他任何内容中找到值。

它们是存储在服务器端的后端,处于视图状态还是其他位置?

祝福,

1 个答案:

答案 0 :(得分:0)

它们存储为相关组件的属性。它们不会生成在生成的HTML输出中,因为组件的渲染器不会将它们识别为标准HTML属性。

该组件又存储在服务器端内存的组件树中,如果它涉及UIFormUIInputUICommand组件,那么它也存储在视图状态中

如果要传递可见参数,则应该使用<f:param>。然后,它们将在组件的HTML表示的生成的JavaScript onclick函数中可见。 请注意,自{JSF 2.0}以来,<f:param>中的<h:commandButton>才受支持。