1

所以这是我的观点:

<!DOCTYPE html>
<html xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core">
<h:head>
    <title>Welcome</title>
</h:head>
<h:body>
    <h:form id="myForm" prependId="false">
    </h:form>
</h:body>
</html>

这是html输出的来源:

<!DOCTYPE html>
<html>
    <head>
        <title>Welcome</title>
     </head>
<body>
    <form id="myForm" name="myForm" method="post" action="/6june/index.xhtml"
                  enctype="application/x-www-form-urlencoded">
        <input type="hidden" name="myForm" value="myForm" />
        <input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState"
value="-6073854252721841133:2030478025710553343" autocomplete="off" />
    </form>
</body>
</html>

那么为什么我会得到 2 个隐藏的输入字段呢?那价值是什么?

问候。

4

1 回答 1

0

这两个隐藏字段是由 h:form 的渲染器添加的。它们随每个 JSF 请求一起发送,并被 JSF 用于在执行回发(表单提交)时恢复其视图。javax.faces.ViewState 隐藏字段的值也用作 CSRF 令牌。

于 2013-06-08T14:32:28.427 回答