« 2006年7月 | トップページ | 2006年9月 »

ListとMapで簡単ぐるぐる

ちょっとほかの事をやっているとJSFを忘れそうだ!

と思いつつ。

マッチングという処理がある
トランザクションとマスタをつき合わせてうんにゃらというやつだ。

マッチングというほどではないかもしれないが
帳票をつくるときに、区分やコードに対する名称を、マスタからとってくるという処理は結構めんどい。
SQLで外部結合すればいいやんという話もあるが、まあそれが何らかの事情によりできない場合。

Mapにはマスタのデータをいれる
  Map<String,マスタのオブジェクト>

Listはトランザクションデータ

要するに
Listの大きさだけまわして、区分やコードをキーにマスタのMapからとってくるだけである

パフォーマンスは知らぬ
件数が多かったらどうとか知らぬ


実装が単純で簡単である。

これはブレークもできる
Map<String,Long> とかにしておいてキーで引っ張って加算していくのだ

個人的には画期的だと思っているのだが
どうなんでっしゃろ。

| | コメント (0) | トラックバック (0)

Ajax4jsf

たった一行、これは簡単 - JSFでAjax、Ajax4jsf

だそうである。
これーは便利♪みたいな

https://ajax4jsf.dev.java.net/nonav/ajax/ajax-jsf/
をみつつやってみたり

ちょと動かしてみた
まだバグがあるらしいが
ほしいなーつかってみるかなー

| | コメント (0) | トラックバック (0)

MyFacesのblank.warを動かして修正してみる

【主旨】
MyFacesについてくる blank.warをeclipseで動かして、修正してみる。

【準備】
●eclipseでサーバーをつくっておく

【作業1:blank.warをもとに日本語表示ができるようにする】

●eclipseにDynamic Web Project で適当なwebプロジェクトをつくる。
ここでは以下「myblank」

●myfaces-1.1.1-examples.zipを解凍して、blank.warを解凍する。
解凍の仕方によってはwarの中身がちらばるので、先に別のフォルダをつくり
そこにwarをコピーしてそこで解凍するのがよい

●blank.warを解凍した、WEB-INFの中身の以下を、「myblank」WebContent/WEB-INFにコピーする
  lib フォルダまるごと
  examples-config.xml
  web.xml

●blank.warを解凍したうち、以下を「myblank」のWebContentにコピーする
  css フォルダ
  jsp全部

●myfaces-1.1.1-src.zipを解凍して、
  src -> examples -> blank -> src -> java -> org フォルダを
「myblank」の「src」にコピーする

●「myblank」をサーバーで実行する

●JSPのencodingをかえる
helloWorld.jspとpage2.jspのtext file encodingをUTF-8にする

●JSPの中身を修正する
helloWorld.jsp とpage2.jsp

ファイルの先頭にcontentTypeをかく
  <%@page contentType="text/html; charset=UTF-8" %>
htmlのタグを書いて<f:view>はbodyのなかにくるようにする
メタタグをUTF-8でかく
<meta http-equiv="content-type" content="text/html; charset=UTF-8">

わかりやすくするためにhelloWorld.jspの
「Please enter your name」

「名前を入力してください」
に変更とかしてみる

【作業2:入力チェックをHelloWorldBackingでするようにする】

●helloWorld.jsp
  input1 にある required="true" required="false" にする

●HelloWorldBacking.java
send() メソッド で、入力チェックをする。
nameが未入力の場合は、メッセージを設定して、カラ文字列をかえすようにする。

(例)
public String send() {
    if (name == null || "".equals(name)) {
        // メッセージを作る
        // 引数1:SEVERITY
        // 引数2:メッセージ
        // 引数3:詳細なメッセージ
        FacesMessage facesMessage = new FacesMessage(
                FacesMessage.SEVERITY_ERROR, "入力してください",
                "名前を入力しないと次の画面に行きません");

        // 特定するばあいはクライアントのIDを書く。めんどい場合はnull
        FacesContext.getCurrentInstance().addMessage("form:input1",facesMessage);

        return "";
    }
    return ("success");
}

●helloWorld.jsp に
<h:messages layout="table" />
など追加してみる。
これはメッセージが全部でてくる。

●画面にアクセスして未入力でボタンをおしてみる
メッセージが2箇所にでてくる。
入力してボタンをおしたときは、次の画面にいくことを確認する


【考察】
JSFはrequired="true"などをかいて入力チェックが楽のような話がよくありますが
さほど便利ではない。
結局はサーバでまとめてチェックすると思う。

クライアントIDを指定してメッセージを入れるのもめんどうというか同期をとるのがむつかしいので
あまりやらない。

Light Weight Java―JSF/Hibernate/SpringによるフレームワークでWebアプリケーションの開発効率向上 Book Light Weight Java―JSF/Hibernate/SpringによるフレームワークでWebアプリケーションの開発効率向上

著者:岡本 隆史,金子 崇之,吉田 英嗣,権藤 夏男
販売元:毎日コミュニケーションズ
Amazon.co.jpで詳細を確認する

| | コメント (0) | トラックバック (0)

MyFacesの例をeclipseで動かしてみる

【主旨】
●MyFacesのexampleのアプリを、eclipseでコンパイルして動かす

【準備】
●eclipseのwtpの安定した最新版
●Apache Tomcat 5.5.xをインストールしておく。
(4.1.xや5.0.xでも動く気はする)

【作業】
●eclipse に Dynamic Web Project で「simple」を作成する

●myfaces-1.1.1-examples.zip を解凍する
そのなかの
  simple.war
を解凍する
(うっかり解凍するとファイルがどばーとできるので、別フォルダにコピーしてからしたほうが良い)
以下は、作成したプロジェクトの WebContent/WEB-INF コピーして貼り付ける(上書きする)
  simple -> WEB-INF -> lib フォルダごと
  simple -> WEB-INF -> web.xml

●myfaces-1.1.1-src.zipを解凍する
そのなかの
  src -> examples -> simple フォルダ
ここから

以下は、作成したプロジェクトの WebContent にコピーして貼り付ける
  css フォルダ
  images フォルダ
  inc フォルダ
  jspファイル全部

以下は、作成したプロジェクトの WebContent/WEB-INF コピーして貼り付ける
  WEB-INFフォルダの下のexamples-config.xml

以下は、作成したプロジェクトの src にコピーして張り付ける
  src -> java -> org フォルダ以下まるごと

    ※srcをプロジェクトにこぴぺするとパッケージがちがうくなります。

●いくつかのJSPファイルが、import文でエラーになる。
気になる場合はimport文を書き直す

●eclipseでサーバを作る

●サーバにsimpleを追加して、実行する

【考察】
simpleのトップページは英語ですが、個々の例は、中は日本語表示になっているところもあります。
かたっぱしからかちかちクリックして動かしてみましょう

ちなみに
sandboxはパッケージ名がエラーになるところがあります
なんだかなっ。


やさしいJava 第3版 Book やさしいJava 第3版

著者:高橋 麻奈
販売元:ソフトバンククリエイティブ
Amazon.co.jpで詳細を確認する

| | コメント (0) | トラックバック (0)

MacOS10.4.7でeclipse-wtpでMyFaces

以前にやったことがあるはずだけどすからぴーと忘れているので
また発作的にやってみる

●eclipse-wtpをダウンロード:eclipse wtpでぐぐる
http://www.eclipse.org/downloads/download.php?file=/webtools/downloads/drops/R1.5/R-1.5.0-200606281455/wtp-all-in-one-sdk-R-1.5.0-200606281455-macosx-carbon.tar.gz

●tomcat5.5.xをダウンロード:tomcat でぐぐる
http://tomcat.apache.org/

●MyFacesをダウンロード:MyFacesでダウンロード
最新版をダウンロード
最新版にはexampleがあるとは限らないので
http://archive.apache.org/dist/myfaces/
からexampleとexampleのソースをダウンロードしてくる

eclipseはまんま解凍
Tomcatも解凍するだけ

MyFacesはsimple.warを解凍するとソース以外は手にはいるので
eclipseにつくったプロジェクトにびよーとコピーする
ソースはソースを解凍して探す
src -> examples -> simple -> src -> java -> org からがパッケージなので
orgをびろりーとコピーする

examplesのsimpleのJSPはいくつか変な?書き方をしていてエラーになる
気になる場合はimportをちょい書き直す

で実行してみる

Safariでもがんばってうごくなあ

もうちょっとがんばってMyFaces入門かこー




Book

The Definitive Guide to Apache Myfaces And Ajax (Definitive Guide)


著者:Zubin Wadia,Martin Marinschek,Thomas Spiegl

販売元:Apress

Amazon.co.jpで詳細を確認する


| | コメント (0) | トラックバック (0)

« 2006年7月 | トップページ | 2006年9月 »