Bal*_*usC 5

name是你想写出HTML属性名称。的property是JSF标签属性名称(由一个属性所指示的UIComponent与该HTML属性相关联的类)。

通常(对于许多属性而言),它们是相同的。例如<h:inputText value>,最终为<input value>.

writer.writeAttribute("value", value, "value");
Run Code Online (Sandbox Code Playgroud)

但是,对于例如 JSF 属性,styleClass这是不同的,因为关联的 HTML 属性名称class是 Java 中的保留关键字,并且您不能拥有像这样的属性private String class而不会遇到编译错误。JSF 组件因此styleClass用作标记属性名称和组件属性。所以例如<h:inputText styleClass>结束为<input class>.

writer.writeAttribute("class", styleClass, "styleClass");
Run Code Online (Sandbox Code Playgroud)

所述property可与指定的null,如果有实际上在JSF标签和/或没有这样的属性UIComponent类。例如,通过自定义组件或渲染器自定义 HTML5 属性。

writer.writeAttribute("autofocus", "true", null);
Run Code Online (Sandbox Code Playgroud)

所以,通常只有当两者UIComponent#getAttributes()都不包含键并UIComponent#getValueExpression()返回null并且属性在 JSF 状态下未知时。