読者です 読者をやめる 読者になる 読者になる

Challenge Java EE !

Java EEを中心に趣味や仕事における開発メモを書いています。

PrimeFaces Mobileで始める初めてのモバイル画面

PrimeFaces Mobile JSF

なんかiPad対応のモバイル専用画面のプロトタイプを作るような話があるらしく、それは是非関わってみたい!というオーラをアピールするために週末で何か作ってみたいなーと思ってます。

将来性を考えるとHTML5とかやってみたいのですが、今の自分が手っ取り早く作れるのはなんだろう…と考えたらPrimeFaces Mobileじゃなかろうか…と(^^;

実は触ったことなかったのですが、ちょっと試してみたら結構簡単に画面表示まで作れたのでまとめてみようと思います。

JSFでモバイル画面作れるのは何気嬉しいです!

環境は

IDE:NetBeans 7.3
フレームワークJava EE 6
JSFコンポ:PrimeFaces Mobile 0.9.4

です。

PrimeFaces MobileはjQuery Mobileをベースに開発されたJSF向けのモバイルコンポーネントです。Showcaseは以下からどうぞ。
http://www.primefaces.org/showcase-labs/mobile/index.jsf

PrimeFaces同様、開発者向けのユーザガイドドキュメントが充実しているので良い感じ(^^)

なお、対応しているモバイル機器はjQuery mobileに準拠しているようで、以下のサイトへのリンクとなっていました。
http://jquerymobile.com/gbs/

Mavenのpom.xml

とりあえずMavenでプロジェクトを作りました。
PrimeFaces同様、MavenレポジトリはCentralではなくPrimeFaces専用なので以下定義が必要です。

<repositories>
    <repository>
        <id>prime-repo</id>
        <name>Prime Repo</name>
        <url>http://repository.primefaces.org</url>
    </repository>
</repositories>

で、必要なjarは以下です。最初mobileのだけ入れてましたが動かず、PrimeFacesがいるっぽいです。

<dependency>
    <groupId>org.primefaces</groupId>
    <artifactId>primefaces</artifactId>
    <version>3.5</version>
</dependency>
<dependency>
    <groupId>org.primefaces</groupId>
    <artifactId>primefaces-mobile</artifactId>
    <version>0.9.4</version>
</dependency>
画面

モバイル画面だけの前提ですが、とりあえず、サンプルを見る限り、bodyとかの定義はなくても以下のようにviewだけで書けるようです。

A画面とB画面があって、リンクでAからBへ遷移するサンプル(ちなみにindex.xhtml)

<f:view xmlns="http://www.w3.org/1999/xhtml"
        xmlns:f="http://java.sun.com/jsf/core"
        xmlns:p="http://primefaces.org/ui"
        xmlns:pm="http://primefaces.org/mobile"
        contentType="text/html"
        renderKitId="PRIMEFACES_MOBILE"
        xmlns:h="http://java.sun.com/jsf/html">
    <pm:page title="mobile">
        <pm:view id="viewA">
            <pm:header title="A"/>
            <pm:content>
                <h:outputLink value="#viewB">Bへ遷移</h:outputLink>
            </pm:content>
        </pm:view>
        
        <pm:view id="viewB">
            <pm:header title="B"/>
            <pm:content>
                B
            </pm:content>
        </pm:view>
    </pm:page>
</f:view>
実行

とりあえず普通にPCのブラウザで確認ですが、以下のような感じに。

初期表示
f:id:kikutaro777:20130627220214j:plain

リンクを押して遷移
f:id:kikutaro777:20130627220222j:plain

遷移のエフェクトパターンを変更
<h:outputLink value="#viewB">Bへ遷移</h:outputLink>

と書いていた部分を例えば

<h:outputLink value="#viewB?transition=slide">Bへ遷移</h:outputLink>

とすると、横スライドのエフェクトで遷移します。
f:id:kikutaro777:20130627220237j:plain
わかりにくいですが(^^;

この感じだと、ちょっとしたプロトレベルならサクサク作れそうな気も。。。

あとで肝心のiPadからみてみねば。

にほんブログ村 IT技術ブログへ
にほんブログ村
にほんブログ村 IT技術ブログ Javaへ
にほんブログ村