ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

安倍首相夫人のアッキーブログが、批判に晒されてるらしい。。

2006-12-30 23:55:42 | Weblog

ここのニュース
アッキーブログに批判「空気読めない」
http://www.nikkansports.com/general/p-gn-tp0-20061230-136622.html

によると、安倍首相夫人のブログに批判の嵐だそうです。。

みてみましょう
安倍昭恵のスマイルトーク
http://akie-abe.jp/


 す、すげー(@_@!)
 クリスマス http://akie-abe.jp/index.php?ID=18
の写真。。。

 ウィリアムのいたずら、盆と正月とクリスマスと結婚式と葬式がいっしょにきても、

こんなご馳走には、ありつけない。。
つーか、最近、こんなご馳走、見たことすらない(^^;)

うーん、セレブはちがう。。。

っていうか、反感買っても。。。やむなし。。


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Javaの画面表示-その6:Struts(その5:Actionをつくる)。

2006-12-30 21:13:59 | JavaとWeb

シリーズJavaの画面表示のつづきです。今、Strutsを具体的な例をあげてやってます。手順は、以下のとおりです。

1.画面遷移を考える。
2.(別にやんなくてもいいけど)それを以下のように図にしておくと、あとで楽です
3.画面のJSPを作成します
4.Strutsタグをいれて、JSPを修正します
5.画面に対応するActionFormを作ります
6.Submitでサーバーで処理するところに対応する、Actionを作ります
7.struts-config.xmlを設定します
8.モデルを作って、Actionから呼び出します

 前回5まできたので、今回は「Submitでサーバーで処理するところに対応する、Actionを作ります」です。




■Actionでやること

 まず、Actionでやることですが、これは、以下のことです。
・入力データを取得する
・モデルとなるメソッドを呼び出す
・次画面のデータをセットしてフォワードする

以下、その方法を書きます。

●入力データを取得する
 まず、入力データがあるということは、入力してもらった画面があるはずで、
 その画面は、前回のActionForm作成により、ActionFormを継承したクラスができているはずです。
 で、そのクラスをキャストして、画面のクラスを取得します。
	inputForm inputform	=	(inputForm)form;


 そしたら、モデルで使う値を取得します。
 ActionFormを作ったときに、getterをつくってるはずなので、それを使いましょう。
   String nyuryoku = inputform.getNyuryoku();


●モデルとなるメソッドを呼び出す
 これは、普通に呼び出して、返り値を取得します。
		//	モデル呼び出し
		Shori1 shori1 = new Shori1();
		String kekka = shori1.rituKeisan(nyuryoku);


●次画面のデータをセットしてフォワードする
 モデルの値に応じて、次画面を書き出すわけですが、それには、

・まず、次画面のActionFormを生成して
 (次画面が、入力画面と同じActionFormなら、生成しないで、それを使いまわしてOKです)
		kekkaForm kekkaform = new kekkaForm();


・値を設定して(setterを使いましょう)
		kekkaform.setRitu(kekka);


・それをsetAtributeします
 このとき、Atributeの名前は、bean:writeタグ等のnameになります。
		request.setAttribute("kekkaForm",kekkaform);


・そしたら、フォワードします
 といっても、いままでみたいに、
getServletContext().getRequestDispatcher("/jsp/index.jsp").forward(request,response);
とやるのではなくて!!以下のように書きます。
		return map.findForward("success");


ここで、successとか名前をおくっていますが、この名前は、前に書いた図のところに描いたものです(図を描いていないなら適当に決めてください)。

 この名前と、呼び出すファイルの関係は、後の工程である「7.struts-config.xmlを設定します」で行います。

●クラスとメソッドについて
クラスは、以下のものをインポートし

import javax.servlet.http.*;
import org.apache.struts.action.*;

以下のような感じで、executeメソッドをつくって、その中に、上記のものを書きます。
package	pac1;

import javax.servlet.http.*;
import org.apache.struts.action.*;

public final class ShoriCtrl extends Action {

	public ActionForward execute
		(ActionMapping map, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
	{

		//	ここに上記処理を書く
	}
}





●具体例
 ここまでをまとめて、今回の具体例に沿って書くと、こんなかんじになります。
package	pac1;

import javax.servlet.http.*;
import org.apache.struts.action.*;

public final class ShoriCtrl extends Action {

	public ActionForward execute
		(ActionMapping map, ActionForm form,
				HttpServletRequest request, HttpServletResponse response)
	{

		//	データの入力
		inputForm inputform	=	(inputForm)form;
		String nyuryoku = inputform.getNyuryoku();
		
		//	モデル呼び出し
		Shori1 shori1 = new Shori1();
		String kekka = shori1.rituKeisan(nyuryoku);

		//	エラー時の出力
		if ( kekka	==	null )
		{
			errorForm errorform	=	new errorForm();
			errorform.setMsg("NO DATA!");
			request.setAttribute("errorForm",errorform);
			return map.findForward("error");
		}
		else if ( kekka.equals("NO DATA!")	==	true)
		{
			errorForm errorform	=	new errorForm();
			errorform.setMsg("NO DATA!");
			request.setAttribute("errorForm",errorform);
			return map.findForward("error");
		}

		//	正常時の処理
		kekkaForm kekkaform = new kekkaForm();
		kekkaform.setRitu(kekka);
		request.setAttribute("kekkaForm",kekkaform);
		return map.findForward("success");
	}
}





■注意点その他

●Action入力画面について
 今回のActionは、error.jsp,input.jsp2つの画面から入力されていますが、どちらも、inputFormクラスを使って、入力データを処理しています。
 このように、入力のActionFormは1つですので、いくつかの画面から入力して、同じActionに行く場合、どの画面も同じActionFormが使えるように、入出力項目は、同じ名前にしないとまずいです。
(input.jspで文字入力のところのプロパティをnyuryokuにしてるのに、error.jspでinputDataにするのは、まずい)

●モデルができるまえに
 ActionFormは、画面が決まれば自動的に作れますし、Actionも、上記のように遷移が決まれば、モデル呼び出し以外はつくれます。
 そこで、モデルを呼び出さないで、(モデル部分のダミーモジュールを作ってもOK!)とりあえず作ってしまい、画面だけは確認するっていうのもありというか、テストファーストなら、そうすべきなのかな。。




 ということで、Actionまで終わったので、
 このシリーズの次回は、「7.struts-config.xmlを設定します」です。




  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ケータイOSとキャリア、メーカーの関係

2006-12-30 19:22:53 | Weblog

今、大掃除していて、あ、でてきたってかんじなので、メモメモ

日経ソリューションビジネス 2006年9月30日号54ページの上の表に、
ケータイOSとキャリア、メーカーの関係が書いてある。
そこをまとめておくと。。。

■ドコモ
 LinuxベースのMOAP(L)と
 SymbianベースのMOAP(S)がある。

 それぞれのメーカーは、こんなかんじ

<<Linux:MOAP(L)>>
 NEC
 パナソニックモバイルコミュニケーション

<<Symbian:MOAP(S)>>
 富士通
 三菱電機など

■au
 BREWベースでKCP、OSはREX OS

 米クアルコムが、マルチタスク対応BREWを開発中。
 (2007年をめどに商用化??)

■ソフトバンクモバイル
 メーカーによって違う





 なお、情報処理(論文誌で”ない”ほう、表紙がカラーのほう)2006年9月号の
 1006ページ~「携帯電話機のソフトウエアプラットホーム」に、詳しいOSの内容が
 書かれています。

 なお、上記の情報処理の1009ページに、UIは、MOAP(L)の場合、
 GTK+、X-Windowsとあるが、
 QTは、Qtopiaが、ザウルスのSLシリーズやSonyのmyloで使われる模様(ここ

(自分へのメモ:ITILの構成管理DB、CMDBは、同じ号の66ページ、M男のコーナーに説明アリ)

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Javaの画面表示-その6:Struts(その4:ActionFormをつくる)

2006-12-30 10:32:15 | JavaとWeb

 シリーズJavaの画面表示のつづきです。今、Strutsを具体的な例をあげてやってます。手順は、以下のとおりです。

1.画面遷移を考える。
2.(別にやんなくてもいいけど)それを以下のように図にしておくと、あとで楽です
3.画面のJSPを作成します
4.Strutsタグをいれて、JSPを修正します
5.画面に対応するActionFormを作ります
6.Submitでサーバーで処理するところに対応する、Actionを作ります
7.struts-config.xmlを設定します
8.モデルを作って、Actionから呼び出します

 前回4まできたので、今回は「画面に対応するActionFormを作ります」です。




■ActionFormのつくりかた

●1.ActonFormのクラスをつくります
  1画面1クラスにしちゃったほうが簡単です
   →実は、共有できるときもあるけど、機械的にやるなら
  クラスの書き出しは、こんなかんじ
package パッケージ名;
import org.apache.struts.action.*;

public final class クラス名 extends ActionForm 
{

}


もちろん、パッケージ名のところ、クラス名のところは、それぞれのパッケージ、クラスによって変わります。
import org.apache.struts.action.*;
をインクルードして
extends ActionForm
で、ActionFormを継承するところは、どの画面のActionFormのクラスでも変わりません

●2.変数名を書きます
 画面のJSPで、bean:writeタグにしたところや、html:textにしたところ、つまり、入力や出力(入出力も含む)にしたところの、プロパティ名を、クラスの中に書きます。
 こんなかんじ(nyuryokuが入力ないし出力項目)

private String nyuryoku;

 プロパティ分、これを続けます

●setter,getterを書きます
 setプロパティ名で1字目を大文字
 getプロパティ名で1字目を大文字
というメソッドを、作成します。
 こんなかんじ(nyuryokuが入力ないし出力項目)

private String nyuryoku;

 プロパティ分、これを続けます
	public void setNyuryoku(String nyuryoku)
	{
		this.nyuryoku=nyuryoku;
	}

	public String getNyuryoku()
	{
			return nyuryoku;
	}





■具体的な例のソース

 上記の方式で、前回から作ってきた、input.jsp,error.jsp,kekka.jspに対応するAcionFormを作ると、こんな感じになります。
 なお、これらの3つのクラスは、pac1というパッケージに入れています。
 (今回の例では、Javaのクラスはみんなpac1というパッケージに入れています)

●input.jspに対応するActionForm:inputForm.java
package pac1;
import org.apache.struts.action.*;

public final class inputForm extends ActionForm 
{
	private String nyuryoku;
	
	public void setNyuryoku(String nyuryoku)
	{
		this.nyuryoku=nyuryoku;
	}

	public String getNyuryoku()
	{
			return nyuryoku;
	}

}


●error.jspに対応するActionForm:errorForm.java
package pac1;
import org.apache.struts.action.*;

public final class errorForm extends ActionForm 
{
	private String nyuryoku;
	private String msg;
	
	public void setNyuryoku(String nyuryoku)
	{
		this.nyuryoku=nyuryoku;
	}

	public String getNyuryoku()
	{
			return nyuryoku;
	}

	public void setMsg(String msg)
	{
		this.msg=msg;
	}

	public String getMsg()
	{
			return msg;
	}
}



●kekka.jspに対応するActionForm:kekkaForm.java
package pac1;
import org.apache.struts.action.*;

public final class kekkaForm extends ActionForm 
{
	private String ritu;
	
	public void setRitu(String ritu)
	{
		this.ritu=ritu;
	}

	public String getRitu()
	{
			return ritu;
	}
}






次回のこのシリーズは、は「6.Submitでサーバーで処理するところに対応する、Actionを作ります」をやります。



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする