2

次のようなモバイル Web ページ (PrimeFaces Mobile に基づく) を作成したいと考えています。

画像1

画像とその下 - 2 つのボタン。

そのために次の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>

しかし、代わりに私はこのビューを取得します:

画像2

目的のレイアウトを得るために xhtml ファイルを変更するにはどうすればよいですか?

4

1 に答える 1

2

と を必要と<p:panelGrid>しないものを単純化します。<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>

または、実際に変更する必要があるのは、2 から 1 への panelGrid 列だけです。

<p:panelGrid columns="1">

内の各 JSF コンポーネントは、属性<p:panelGrid>で指定された数に基づいて新しい列を作成します。columns

例:

<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>

ここに画像の説明を入力

于 2014-11-05T20:17:20.587 に答える