当我点击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寻求帮助。
答案 0 :(得分:1)
您误用了p:outputLabel
,它会生成一个HTML <label>
元素,这不是您想要的。我认为这些都有效:
p:outputPanel
h:panelGroup
他们都可以根据span
属性生成HTML div
或layout
。
我会选择<h:panelGroup>
,这意味着正是这种分组。