除了ID之外,为什么JSF会生成名称?

时间:2016-06-01 12:53:12

标签: jsf-2

生成/使用ID非常明确,用于将提交的组件重新关联到视图树。

但为什么JSF也会生成名字?它是在内部使用它们吗?

1 个答案:

答案 0 :(得分:3)

HTML规范是required,Servlet API是used。 Web浏览器使用输入字段名称作为HTTP请求参数名称。它们不使用输入字段ID,因为否则无法为每个名称发送多个值(选择多个,复选框组等)。

<h:inputText id="foo">

产生

<input type="text" id="formId:foo" name="formId:foo" />

在HTTP请求中作为客户端(通过webbrowser的内部代码)准备好

element.getAttribute("name") + "=" + element.getAttribute("value")

并从HTTP请求中获取服务器端(由UIComponent#decode()提取)

String foo = request.getParameter(component.getClientId());

另见: