開発者ドキュメント

JSF 2のpanelGridの例

JSFでは、「

h:panelGrid

」タグを使用して、JSFコンポーネントを行と列のレイアウトで左から右、上から下に配置するためのHTML表タグを生成します。

たとえば、JSFコンポーネントを次のようなHTMLテーブル・タグでグループ化していました。

<table>
<tbody>
<tr>
    <td>
        Enter a number :
    </td>
    <td>
        <h:inputText id="number" value="#{dummy.number}"
            size="20" required="true"
            label="Number" >
            <f:convertNumber/>
        </h:inputText>
    </td>
    <td>
        <h:message for="number" style="color:red"/>
    </td>
</tr>
</tbody>
</table>



h:panelGrid

“タグを使用すると、HTMLテーブルタグを入力せずに、上記の同じレイアウトを得ることができます。

  • h:panelGrid **

<h:panelGrid columns="3">

    Enter a number :

    <h:inputText id="number" value="#{dummy.number}"
        size="20" required="true"
        label="Number" >
        <f:convertNumber/>
    </h:inputText>

    <h:message for="number" style="color:red"/>

</h:panelGrid>
  • 注意** “column”属性はオプションで、JSFコンポーネントのレイアウトに必要な列の数を定義します。デフォルトは1です。

h:panelGridの例



h:panelGrid

」タグを使用してコンポーネントを適切にレイアウトする方法を示すJSF 2.0の例

1.マネージドBean

デモ用のダミーBean。

package com.mkyong;

import java.io.Serializable;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

@ManagedBean(name="dummy")
@SessionScoped
public class DummyBean implements Serializable{

    int number;

    public int getNumber() {
        return number;
    }

    public void setNumber(int number) {
        this.number = number;
    }

}

2. JSFページ



h:panelGrid

“タグを使用してJSFコンポーネントを3列のレイアウトに配置するJSF XHTMLページ。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<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:c="http://java.sun.com/jsp/jstl/core"
      >
    <h:body>

        <h1>JSF 2 panelGrid example</h1>

    <h:form>
        <h:panelGrid columns="3">

            Enter a number :

            <h:inputText id="number" value="#{dummy.number}"
                size="20" required="true"
                label="Number" >
                <f:convertNumber/>
            </h:inputText>

            <h:message for="number" style="color:red"/>

        </h:panelGrid>

        <h:commandButton value="Submit" action="result"/>

    </h:form>
    </h:body>
</html>

HTML結果の出力:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<body>
    <h1>JSF 2 panelGrid example</h1>
    <form id="j__idt6" name="j__idt6" method="post"
        action="/JavaServerFaces/faces/default.xhtml"
                enctype="application/x-www-form-urlencoded">
    <input type="hidden" name="j__idt6" value="j__idt6"/>

    <table>
    <tbody>
    <tr>
        <td>
            Enter a number :
        </td>
        <td>
            <input id="j__idt6:number" type="text"
                              name="j__idt6:number" value="0" size="20"/>
        </td>
        <td></td>
    </tr>
    </tbody>
    </table>

    <input type="submit" name="j__idt6:j__idt10" value="Submit"/>
        <input type="hidden" ..../>
    </form>
</body>
</html>

デモ

この例のスクリーンショット。

例:jsf2-panelGrid-Example-1、width = 640、height = 347]



ソースコードをダウンロードする

ダウンロード – リンク://wp-content/uploads/2010/10/JSF-2-PanelGrid-Example.zip[JSF-2-PanelGrid-Example.zip](9KB)

リファレンス

2 panelGrid JavaDoc]

リンク://タグ/jsf2/[jsf2]

モバイルバージョンを終了