Jsf javax.faces.view.facelets.TagAttributeException
我正在使用JSF创建一个小应用程序,面对异常,下面是表单的代码Jsf javax.faces.view.facelets.TagAttributeException,jsf,primefaces,Jsf,Primefaces,我正在使用JSF创建一个小应用程序,面对异常,下面是表单的代码 <h:form> <h:selectManyCheckbox value="#{transferMB.selectedItems}"> <f:selectItem itemValue="1" itemLabel="Transfer Status" /> <p:ajax update=":transForm" /> </h:selectManyChec
<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:”您应该在渲染属性中调用
类布尔值
例如:
<p:panelGroup id="group" rendered="{#bean.isOneSelected}">
...
</p:panelGroup>
<p:panelGroup id="group" rendered="{#bean.isTwoSelected}">
...
</p:panelGroup>
...
...
以及从selectManyMenu获取值。请查收
此外,呈现的标记是一个类似于布尔值的条件,用于指示是否应显示标记。您不应该需要将参数传递给它。您应该从您那里获得该信息transferMB
这是对
如前所述,您需要使用EL2.2在EL表达式中传递参数。看来你没用这个
所以我们需要另一种方法来解决这个问题:
<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>
请参阅上面的帖子,添加代码后是异常iam facing@Josef E.@user3684675是否有其他方法可以获得所需的值?它可能是从隐藏字段传递给用户的,或者是该用户输入的?因为“rendered”不能将参数传递给它。哦..但是如果不传递,我就无法检查条件,复选框被选中。您的selectmenu中有一个ajax
标记。使用它来更新bean中相应的值。我将编辑我的答案@user3684675,但当我研究时,我知道“rendered”可以调用其他方法来检查条件。我想可能是jar的问题,但不确定..@Josef E。
public boolean isTransFormEnabled() {
if (selectedItems.contains("1")) {
return true;
} else {
return false;
}
}
public boolean isSpreadFormEnabled() {
if (selectedItems.contains("2")) {
return true;
} else {
return false;
}
}