h:panelGrid的角色属性

时间:2013-11-20 19:44:59

标签: jsf

我正在使用官方Java EE教程中的示例,其中包含以下内容:

<h:panelGrid columns="2"
    headerClass="list-header"
    styleClass="list-background"
    rowClasses="list-row-even, list-row-odd"
    summary="#{bundle.CustomerInfo}"
    title="#{bundle.Checkout}"
    role="presentation">

但是编译器说没有为h:panelGrid组件定义属性角色。如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

该属性是在JSF 2.2中引入的。作为证据,JSF 2.2 <h:panelGrid> documentation中提及role属性,但JSF 2.1 <h:panelGrid> documentation中未提及。

您的问题历史记录确认您在GlassFish 4.0上使用JSF 2.2,因此此编译器警告实际上是错误的。这不是JSF问题,而是IDE问题。 IDE以某种方式认为您不使用JSF 2.2,而是使用JSF 2.1或更早版本。即您的工具集正在对您不利。您没有提到您正在使用的IDE,因此无法发布正确的答案。

如果项目运行良好且JSF页面产生正确的HTML输出(即role属性实际上最终生成的HTML <table>元素,您可以通过右键单击看到,查看源代码在webbrowser中),然后一切都很好,只是IDE假装比实际更聪明。

我开始在IDE项目的属性中窥视,以检查JSF版本是否正常。项目属性中的JSF方面必须设置为2.2版本,而不是更低。必须声明faces-config.xml符合JSF 2.2,而不是更低。