我想创建一个移动网页(基于PrimeFaces Mobile),如下所示:
图像及其下方 - 两个按钮。
我为此写了以下xhtml页面:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui"
xmlns:pm="http://primefaces.org/mobile">
<f:view renderKitId="PRIMEFACES_MOBILE"/>
<h:head>
</h:head>
<f:event listener="#{main.loadFirstImage}" type="preRenderView" />
<h:body id="body">
<pm:page id="page">
<pm:header title="myapp">
</pm:header>
<pm:content id="content">
<h:form>
<p:panelGrid columns="2">
<p:row>
<p:column colspan="2">
<p:graphicImage id="image" rendered="false" value="#{main.currentImage()}"
cache="false">
</p:graphicImage>
</p:column>
</p:row>
<p:row>
<p:column colspan="1">
<p:commandButton id="hotButton"
value="Button 1"/>
</p:column>
<p:column colspan="1">
<p:commandButton id="notButton"
value="Button 2"/>
</p:column>
</p:row>
</p:panelGrid>
</h:form>
</pm:content>
<pm:footer title="m.myapp.info"></pm:footer>
</pm:page>
</h:body>
</html>
但我得到了这个观点:
如何更改我的xhtml文件以获得所需的布局?
答案 0 :(得分:2)
简化<p:row>
您不需要<p:column>
和<p:panelGrid columns="1">
<p:graphicImage id="image"></p:graphicImage>
<p:panelGrid columns="2">
<p:commandButton id="hotButton" value="Button 1"/>
<p:commandButton id="notButton" value="Button 2"/>
</p:panelGrid>
</p:panelGrid>
。
<p:panelGrid columns="1">
或者你真正需要改变的是你的panelGrid列从2到1:
<p:panelGrid>
columns
中的每个JSF组件都会根据<p:panelGrid columns="1">
<h:outputText value="1" />
<h:outputText value="2" />
</p:panelGrid>
属性中指定的数量创建新列。
示例:
<p:panelGrid columns="2">
<h:outputText value="1" />
<h:outputText value="2" />
</p:panelGrid>
{{1}}