h:单击空格后的panelGrid运行操作

时间:2014-11-15 12:36:29

标签: jsf primefaces facelets

当我点击panelGrid中的某个地方时,它会从我的commandButton中运行操作。整个accordionPanel在h:form ..

JSF:

    <p:accordionPanel value="#{test.getAllTests()}" var="currentTest" activeIndex="false">   
        <p:tab title="#{currentTest.name}">
        <h:panelGrid columns="2" cellpadding="10">
            <p:graphicImage value="resources/img/testIT/#{currentTest.imageSrc}" width="100" height="100" />
            <p:outputLabel>
                <h2>#{currentTest.name}</h2>
                <p>#{currentTest.description}</p>
                <p:commandButton value="Zvolit test" styleClass="testChoseButton" actionListener="#{test.setSelectedTest(currentTest)}" action="testProgress.xhtml" />
                <p:spacer height="5px" width="20px" style="float: right;" />
                <p:button value="Statistika testu" styleClass="testChoseButton" />
            </p:outputLabel>    
        </h:panelGrid>
    </p:tab>
</p:accordionPanel>

test.setSelectedTest(currentTest):

    public void setSelectedTest(Test selectedTest) {
    this.selectedTest = selectedTest;
    System.err.println("Selected test: " + selectedTest.getId() + " - " + selectedTest.getName());

}

我不知道你还需要什么。 Thnx寻求帮助。

1 个答案:

答案 0 :(得分:1)

您误用了p:outputLabel,它会生成一个HTML <label>元素,这不是您想要的。我认为这些都有效:

  • p:outputPanel
  • h:panelGroup

他们都可以根据span属性生成HTML divlayout

我会选择<h:panelGroup>,这意味着正是这种分组。