最近の更新

2012年7月3日火曜日

JSF2.1+RichFaces4.2.2による実践的なWebアプリケーションの開発(015)

【目的】
JSF2.1+RichFaces4.2.2による実践的なWebアプリケーションを開発する。
※015では、ログイン後のメイン画面を作成します。



【手順1】
1.「任意のディレクトリの作成方法」の手順で、「WebContent」以下に「pages」ディレクトリを作成。
2.「任意のディレクトリの作成方法」の手順で、「WebContent/pages」以下に「main」ディレクトリを作成。
3.「任意のファイルの作成方法」の手順で、「WebContent/pages/main」ディレクトリに「main.xhtml」というファイルを作成。
4.「main.xhtml」を以下の様に作成。

<html xmlns="http://www.w3c.org/1999/xhtml"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:a4j="http://richfaces.org/a4j"
    xmlns:rich="http://richfaces.org/rich">
<h:head>
    <h:outputStylesheet library="css" name="common.css" />
    <title>書き取りサービス【メイン画面】</title>
</h:head>
<h:body>
    <div align="center">
        <h:panelGrid columns="2" border="1">
            <h:outputText value="ようこそ" />
            <h:outputText value="#{loginFormBean.loginId}" />
        </h:panelGrid>
    </div>
</h:body>
</html>

5.「Ctrl+Shift+F」を押し、ソースコードをフォーマッティング、「Ctrl+S」でファイルを保存。
6.「LoginActionBean.java」を以下の様に入力。
※loginの戻り値をString型にし、メイン画面のXHTMLの拡張子無しで指定。

package kakitori.login.managedbean;

import java.io.Serializable;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

import kakitori.common.ManagedBeanUtil;

@ManagedBean
@RequestScoped
public class LoginActionBean implements Serializable {
    private static final long serialVersionUID = -7982056395519095894L;

    public String login() {
        LoginFormBean loginFormBean = (LoginFormBean) ManagedBeanUtil
                .getManagedBean(LoginFormBean.class);

        System.out.println("loginId=" + loginFormBean.getLoginId());
        System.out.println("password=" + loginFormBean.getPassword());

        return "/pages/main/main";
    }
}


7.「サーバーをデバッグモードで起動する方法」の手順で、サーバーを再起動します。
8.ブラウザで以下のURLにアクセスします。
http://localhost:8080/kakitori/faces/index.xhtml

9.以下の様に表示されれば成功です。







































【課題】
001.ログインIDのテキストフィールドにフォーカスが入ったときにIMEの入力がなぜか「かなモード」になるのでIMEの制御が必要。⇒OK
002.画面表示時にログインIDのテキストフィールドにフォーカスの移動が必要。⇒OK
003.「Tab」キーを押下時に「ログインID」⇒「パスワード」⇒「ログインボタン」⇒最初に戻るの制御が必要。⇒OK
004.h:panelGridでのカラムの連結方法が不明なので、facetのfooterでカラムを連結させたが、正式なカラムの連結方法があれば変更する。
005.ログインボタンの横位置を制御し、セル中央に移動させる。⇒OK
006.ログイン情報のh:panelGrid自体を、画面中央に移動させる。⇒OK
007.IDの命名方法の検討が必要。
008.「Tab」キーの押下時にTabIndexが最後の場合、最初のTabIndexに移動する制御が必要。
009.ManagedBeanに画面の項目値と処理の両方が記述されるので、クラスの見通しが悪くなりそうなので分離が必要。⇒OK
010.XHTML名、XHTMLの配置ディレクトリ名、Javaのパッケージ名の対応付け規則が必要。
011.他のManagedBeanを参照する記述は、今後多数現われそうなので、共通化・簡易化が必要。⇒OK
012.ログインID、パスワードの入力必須チェックが必要。⇒OK
013.エラーメッセージの内容を分かり易く変更する。⇒OK
014.エラーメッセージの見栄えをエラーと分かり易く変更する。⇒OK
015.エラーメッセージの外部ファイル化。
016.スタイルシートを外部ファイル化。⇒OK
017.XHTMLの内容が一部が重複(CSSの呼び出し)してきているので共通化が必要。
018.画面遷移後のURLが遷移先のXHTMLで無いので、遷移後のXHTML名に出来るか調査。



以上です。

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。

関連記事