javax.faces.view.facelets.TagAttributeException



我正在使用JSF创建一个小应用程序,面对这个异常,下面是表单的代码。

  <h:form>
 <h:selectManyCheckbox value="#{transferMB.selectedItems}">
    <f:selectItem itemValue="1" itemLabel="Transfer Status" />
      <p:ajax update=":transForm" />
 </h:selectManyCheckbox>
</h:form>

异常" javax.faces.view.facelets.TagAttributeException:"

这是加载数据时的后续问题

如前所述,您需要使用EL 2.2在EL- expression中传递参数。你好像不用这个。

所以我们需要另一种方法来解决这个问题:

<h:form id="transForm">
    <p:panelGrid columns="1" rendered="#{transferMB.transFormEnabled}">
        <h:outputText value="transForm"/>
    </p:panelGrid>
</h:form>
<h:form id="spreadForm">
    <p:panelGrid columns="1" rendered="#{transferMB.spreadFormEnabled}">
        <h:outputText value="spreadForm"/>
    </p:panelGrid>
</h:form>

和在相应的bean中:

public boolean isTransFormEnabled() {
    if (selectedItems.contains("1")) {
        return true;
    } else {
        return false;
    }
}
public boolean isSpreadFormEnabled() {
    if (selectedItems.contains("2")) {
        return true;
    } else {
        return false;
    }
}

你应该调用Boolean-like值到你的渲染属性。

的例子:

<p:panelGroup id="group" rendered="{#bean.isOneSelected}">
...
</p:panelGroup>
<p:panelGroup id="group" rendered="{#bean.isTwoSelected}">
...
</p:panelGroup>

以及从selectManyMenu获取值。请在这里核对。


呈现的标签也是一个类似Boolean的条件,用于判断是否应该显示标签。你不需要给它传递参数。你应该从你的transferMB

中获取这些信息

相关内容

  • 没有找到相关文章

最新更新