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

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

Dukeマウス、紹介してなかった!

2006-12-31 23:55:32 | Weblog

 そうだ、今年、やりのこしたことがあった。
 Dukeマウス、getしたのに、ここで紹介してなかったので、
 いま、紹介します。こんなかんじ

 今年中に、まにあった。。かな?

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

Javaの画面表示-その6:Struts(その7:モデルと配置)。

2006-12-31 22:43:41 | JavaとWeb

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

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

 前回7まできたので、今回は「8.モデルを作って、Actionから呼び出します」なのですが、これは、すぐに終わってしまう一方、配置について書かないといけないので、それについても書きます。




■モデル部分について
Actionで呼び出しているshori1.rituKeisanですが、これは、Javaの画面表示-その4:JSPで表示、JavaBeanで処理(その2:ソース) で示したShori1.javaとおなじです(ということは、Strutsを使わなくても、JSPだけでも、MVCにわけて、同じことができるということです)。
 なので、一応ソースだけ、書いておきます。
package	pac1;

public class Shori1 {
	public String rituKeisan(String nyuryoku)
	{
		//==============================//
		//	データの取得	   //
		//==============================//
		if ( nyuryoku	==	null )
		{
			return "NO DATA!";
		}
		else if ( nyuryoku.length()	==	0 )
		{
			return "NO DATA!";
		}

		// 処理
		int	i,atari;
		atari = 0;
		String chk = "This is a pen";
		for(i = 0 ; i < nyuryoku.length() ; i ++ )
		{
			if ( i >= chk.length() )
			{
				break;
			}
			else if ( chk.charAt(i) ==  nyuryoku.charAt(i) )
			{
				atari++;
			}
		}

		//==============================//
		//	結果を返す	     //
		//==============================//
		return	Integer.toString(atari*100/chk.length());

	}

}

(上記 < >は、本当は半角です)




■配置
 で、今まで作ったものの配置です。
 まず、Tomcatのフォルダの下にwebappsがあるとおもうので、そこになんかフォルダをつくって、その下におきます。
 ただし、あとでlibのフォルダにいろいろいれないといけないので、実際には、
 struts-blank-1.3.5.warファイルを、あらかじめ、名前を変えておいて(フォルダ名.war)、それを、Tomcatのフォルダの下のwebappsの下において、展開してもらうことによって、フォルダを作成したほうが楽です。

 今回は、stestという名前でwebappsの下に作ったとします。

 そうした場合の、JSPファイルとjavaのクラスファイル、struts-config.xmlの置き方は、こんな感じになります

Tomcatのフォルダ
  |-webapps
     |-アプリを置くフォルダ
        |-jsp
        |  *-JSPファイル
        |-WEB-INF
           |-struts-config.xml
           |-web.xml
           |-lib
           | |-(中身は省略)
           |
           |-classes
             |-パッケージ名
                |-Javaクラスファイル


 JSPファイルは、アプリを置くフォルダの下なら、どこでも本当は大丈夫です。
 一方、WEB-INFの下にある設定ファイルや、ライブラリ、クラスは、このようにWEB-INFを作って配置してください。
 web.xmlと、libの中身に関しては、struts-blank-1.3.5.warを展開したものと同じものを使います(これ以外のファイル、フォルダは、今回は使いません)

 今回の具体例の場合は、以下のように配置します。
Tomcatのフォルダ
  |-webapps
     |-stest
        |-jsp
        |  |-index.jsp
        |  |-kekka.jsp
        |  *-error.jsp
        |
        |-WEB-INF
           |-struts-config.xml
           |-web.xml
           |-lib
           | |-(中身は省略)
           |
           |-classes
             |-pac1
                |-inputForm.class
                |-errorForm.class
                |-kekkaForm.class
                |-ShoriCtrl.class
                *-Shori1.class

 



 これで、Strutのお話は、ここでおわりです。
 で、Javaの画面表示の話も、HelloJava以降のJavaとしての話も、ここでおわりということになります。

 以降、来年からは、Javaの個々の話題に関して、単発的に触れて生きたいと思います。
 まずは、Strutsの続きからはじめます。
 (今回の話を前提に、ワンポイント的な話を書いていきます)

 また、HelloWorldまでのJavaの話を土日に、HelloJava以降の話を今回まで行ったため、本来なら、コレでつながるはずなのですが、重要な、例外の話やHashMapの話を書いていないので、またいつか、(もちょっとたったら)そのHelloWorldが終わった人のためのJavaみたいなシリーズも検討していたりしています。

 ということで、なんか、さいごはばたばたでしたが、これで、このシリーズおわりです。
(年内に終わってよかった ^^;)




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

デザインパターンの23種類の各パターンは、要するにこうだ!と言い切る(その4:振る舞い編2)

2006-12-31 21:01:47 | JavaとWeb

 これ、途中でとまってたんで、今年中に終わらせたいと思います。
 シリーズデザインパターンの23種類の各パターンは、要するにこうだ!と言い切るの4回目です。

 このシリーズ、GoF本の、デザインパターン23個は、結局、一言でいいきると、なんなんだ!というのを書いてます。かなり独断と偏見で書いてます。

 GoF本のデザインパターンは、主に3つにわかれます。
 1つめは、生成に関するもの
 2つめは、構造に関するもの
 3つめは、振る舞いに関するもの

 で、生成に関するものと、構造に関するものは書きました。

 振る舞いに関するものは、
  1.Chain Of Responsibilityパターン
  2.Commandパターン
  3.Interpreterパターン
  4.Iteratorパターン
  5.Mediatorパターン
  6.Mementoパターン
  7.Observerパターン
  8.Stateパターン
  9.Strategyパターン
 10.Template Methodパターン
 11.Visitorパターン

 とあって、前回5番のMediatorパターンまでやったので、今回は、6.Mementoパターンからです。

 なお、デザインパターンの具体的なプログラムは、
JavaでHello World > デザインパターン
http://www.hellohiro.com/pattern/

というのがあって、そこに載っているようなので、気になる人はそちらを参照してみてください。

なお、この内容は、増補改訂版Java言語で学ぶデザインパターン入門を参考にしています。



■6.Mementoパターン
 やり直し(undo)やもう一度(redo)するために、インスタンスの状態を保存したり、復元させる方法



■7.Observerパターン
 ある対象の状態が変化したときに、あらかじめ登録しておいたオブジェクトに(変化したことを)通知する。
 ちなみに、Javaでは、これをjava.util.observe,java.util.observableを継承して利用することによって、行うっていう手もある。




■8.Stateパターン
 よく、Cプログラムなどで、状態を表す変数stsなどというものを用意しておき、状態が変わるとsts=5のように、値をセットして、switch(sts)のように、状態によって処理を行うということをするが、それを、クラスを使って、オブジェクト指向っぽくやったもの。



■9.Strategyパターン
 やりかたがいくつかあって(たとえば、株の銘柄を選ぶとき、PBRで選ぶ、PERで選ぶ、利回りで選ぶなど、いくつかやり方があって)、やり方をごっそり変えたいとき、できるだけ他に影響を与えずに、やり方を切り替える方法。



■10.Template Methodパターン
 まさにテンプレートです。抽象クラスとして、テンプレートを用意しておき、具体的に使うときは、これを具体化して(一部かえることはあるかもしんないけど)使うというもんです。



■11.Visitorパターン
 オブジェクト指向は、データと処理をカプセル化します。
 しかし、処理(メソッド)を、あるデータ(エンティティ)に所属させるのが、あんまり良くないとき(適したものがない、適したものがいくつもある)、
 データ構造と処理を分離させてしまい、処理をvisitorのクラスとして定義してしまい、データ構造を、”訪問していく”形にしたもの。




ひえー、ということで、23個示したので、これで、このシリーズは、おしまいです。

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

中央官庁、マイクロソフトの「ワード」や「エクセル」、原則購入対象から外す!

2006-12-31 18:42:09 | Weblog

 って、NHKニュース、まじっすかあ(@_@!)

ここのNHKニュース
互換性重視しソフトを調達へ
http://www3.nhk.or.jp/news/2006/12/31/d20061231000103.html

(NHKニュースは、日にちが変わると見れなくなります。
 その場合は、2006/12/31/のところを、今日の日にちにすると、
 見える「ことがあります」(必ず見れるわけではない))

によると(以下斜体は上記ニュースより引用)

国は、今後調達するソフトは互換性を重視し、原則として国際的な規格や日本工業規格などに基づく製品を優先して調達する方針を固めました。現在広く使われているマイクロソフト社製の「ワード」や「エクセル」などは、基準を満たしていないため、業務に支障がある場合などの特例を除き、今のままでは購入の対象外になります。国は今後一般からの意見も募って、新しい指針をまとめ、平成19年の夏にもこの指針に基づいたコンピューターソフトの調達を始める計画です


 まじっすかあー(@_@!)

 じゃあ、国に提出する場合は、ワード、エクセルでなく、そのソフト(OpenOfficeとかかなあ??)をインストールして作れって言うことになりませんか。。。

 そのソフト、フリーソフトから選んでくれればいいけど。。。

 マイクロソフトから、なんか、文句きたりして。。
 (互換性のある形式で書き出せば言いだけか。。。)

 でも、互換性重視なら。。やっぱ。。。
 テキストファイルで、ノートパッドですよね!

 たいてい、どんなOSでも、開けますよ(^^;)v



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

Javaの画面表示-その6:Struts(その6:struts-config.xmlの設定)

2006-12-31 12:37:33 | JavaとWeb

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

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

 前回6まできたので、今回は「7.struts-config.xmlを設定します」です。




■具体例について
 今回はいつもと違い、先に具体例、struts-config.xmlを示して、そのあとで、内容を書きます。

<?xml version="1.0" encoding="ISO-8859-1" ?>

<!DOCTYPE struts-config PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
          "http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config>
	<form-beans>
 		<form-bean name="inputForm" type="pac1.inputForm" />
 		<form-bean name="kekkaForm" type="pac1.kekkaForm" />
		<form-bean name="errorForm" type="pac1.errorForm" />
	</form-beans>
	<action-mappings>
		<action path="/shori" type="pac1.ShoriCtrl"
				name="inputForm" scope="request" validate="false">
			<forward name="success" path="/jsp/kekka.jsp" />
			<forward name="error" path="/jsp/error.jsp" />
		</action>
	</action-mappings>
</struts-config>

(上記 < > は、本当は半角です)

ここで、画面のイベントやフォワードの名前とJSPの関係は、以下のとおりです

(この設定ファイルを書きやすくするため、上記の図を作っています)
また、ActionFromのクラスと画面の関係は、以下のとおりです

 input.jsp  inputForm(ただし、error.jspのフォーム部分と同じ)
 error.jsp  errorForm(出力用)
 kekka.jsp  kekkaForm(JSP自体が、画面出力しかない)


さて、上記のXMLは、おおきく3つの部分に分かれます。
・DOCTYPE部分
・画面のActionForm定義:form-beans
・画面のAction定義:action-mappings
以下、それぞれについて説明します



■DOCTYPE部分
 決まり文句です。なお、これは1.3用です。
 1.1は、1.3と書いてあるところが違うのですが、
 1.3で1.1を使わないほうがいいと思います(つまり、バージョンを直したほうがいいと思います。form-beanとaction-mappingsだけなら、たぶん、それでOKそう。。)



■画面のActionForm定義:form-beans
 form-beansタグの中に、form-beanタグを書き、1ActionFormクラス1form-beanで書きます。こんなかんじ

  <form-bean name="名前" type="パッケージ名.アクションクラス名" />

 名前は、あとで使うaction-mappingsのところで使います。
 テキトーに付けてください(というか、クラス名と同じにするとか、なんか決まりをつくったほうがいいです)。



■画面のAction定義:action-mappings
 action-mappingsタグの中に、actionタグを書き、1Actionクラス1actionで書きます。こんなかんじ

<action path="JSPで書いたaction" type="パッケージ名.クラス名"
    name="入力画面の名前" scope="request" validate="false">
    <forward name="フォワード名" path="フォワードするJSP" />
       :
</action>

 ”JSPで書いたaction”とは、JSPファイルのhtml:formタグのaction属性で指定したものです。

 ”入力画面の名前”とは、このActionの入力画面に対応する、ActionFormの名前なのですが、その名前は、上記「画面のActionForm定義:form-beans」で書いた、名前のことです。

 ”フォワード名”とは、Actionクラスで
   return map.findForward("success");
 でsuccessとか書いた、あのmap.findForwardの引数として指定したものです。

 ”フォワードするJSP”は、JSP名を書いてください(このアプリの下から書きます。なので、/jsp/kekka.jspとか、書くことになります)。




 これだけ書けば、動きます。

 で、このシリーズの次回では、「8.モデルを作って、Actionから呼び出します」なんですけど、モデル部分は、Javaの画面表示-その4:JSPで表示、JavaBeanで処理(その2:ソース) で示したShori.javaと同じですので、それは軽く触れる程度にして、中心的な話題は、配置について書こうと思います。


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

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

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でシェアする

全国11のお寺の除夜の鐘の音が聞けるサイト

2006-12-29 23:47:08 | Weblog

ここのニュース
世界に響け「除夜の鐘」 産経デジタル、5サイトから配信
http://headlines.yahoo.co.jp/hl?a=20061229-00000004-fsi-bus_all

によると(以下斜体は上気ニュースより引用)


「除夜の鐘」も電子化の時代-。産経新聞グループの5つのウェブサイトでは、年末年始特別企画の一環として、名刹(めいさつ)の鐘の音がサイト内で聞ける「叩けば鳴ります除夜の鐘」のサービスを始めた。

 北海道から九州まで全国11の名刹の協力により、実際に大みそかに突く梵鐘の音色を収録。特設サイト内でユーザーが画面をクリックするたびに、その深遠な音色が鳴り響く仕組みとなっている。


そうです。面白そうです。いってみましょう。。ここです。
叩けば鳴ります除夜の鐘
http://event.sankei-digital.co.jp/nenmatsu-2006/jyoya/jyoya.html


テキトーにお寺の名前をクリック、「鐘の音を聞く」をクリックすると、そのお寺の様子が別ウィンドウで出るので、そのウィンドウの「鐘の音を聞く」を、ウィリアムのいたずらの場合、なぜか1回ではダメで、2回クリックすると、きけます。

 うん、だから、どーした。。。といわれてしまうと(^^;)


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

"「ゲーム脳はウソ」説 ゲームは脳機能発達に貢献"だって

2006-12-29 18:53:25 | Weblog

ここのアメーバニュース
「ゲーム脳はウソ」説 ゲームは脳機能発達に貢献
http://news.ameba.jp/2006/12/2468.php

によると(以下斜体は上記サイトより引用)


一般的なゲーム脳の考え方は、「ゲームをやり過ぎることによって『キレやすくなる』『学力低下をもたらす』」など。

 だが、このブログで紹介している spluch.blogspot.comの記事によると、「最新の研究結果によると、ビデオゲーム(テレビゲーム)は脳の機能の発達に貢献していることが明らかになったという」だそうだ。この根拠は、被験者に暗算をしてもらう実験を行ったところ、ビデオゲームを頻繁にする人の方が聡でない人よりも8%間違い少なく、45ミリ秒暗算が速かったから。


だそうな。

ちなみに、その元ねたのspluch.blogspot.comの記事っていうのが、

ここ(英語です)

http://spluch.blogspot.com/2006/12/video-games-may-be-beneficial-to-brain.html


うーん、もし、日本でも、だれか心理学者がしらべて、こんな結果が出たら、
なおさら、ニンテンドーDSは、売れそうだ。。
たしかに、数独とかやると、計算速くなりそうだしなあ。。

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

Javaの画面表示-その6:Struts(その3:画面のソースまで)。

2006-12-29 16:42:52 | JavaとWeb

 シリーズJavaの画面表示のつづきです。今、Strutsをやってます。
 前回は、Strutsアプリを動かすのに必要なファイルと手順について書きました。
 手順は、以下のとおりです。

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

今回は、具体例をもとに1から4までを考え、画面のJSPファイル(Strutsタグ入り)をつくります。



■1.画面遷移を考える。

・画面の表示内容と、
・どのボタンがおされたら、つぎに、どの画面を表示するか
 (同じ画面の場合もある)を考えます。

 なお、「どのボタンが押されたら」に関しては、サーバーに言って処理するものだけ
 とりあえず、考えておけばOKです(JavaScriptでブラウザ上だけで処理
するものはStrutsと関係ありませんので。。)

<<具体例>>
 以下の入力画面


 で、何も入力しないで「打ち終わった!」をクリックすると、以下のエラー画面が表示され


 入力して「打ち終わった!」をクリックすると、以下の正解率表示画面が表示されます





■2.(別にやんなくてもいいけど)それを以下のように図にしておくと、あとで楽です
 画面を四角形、サーバー処理を楕円というように、画面と処理をわけておくと、
たぶん後で見やすいです。
 こんなかんじです。

 で、→についてですが、処理側に矢がくるのは、JSPファイルのFormのActionで呼び出すときの名前です。
 ということは、この同じ楕円(処理)にむかって投げかけられる矢の名前は、同じ処理
を呼び出しているので、同じ名前になるはずです(図だと、shori)。
 一方、処理から画面に対しては、同じ処理から、違う画面に行く場合は、名前を変えてください(図では、errorとsuccess)。
 ちなみに、この名前はActionで次の画面を呼び出す(フォワードする)ときの呼び名になります。

 上記の決まりを守れば(→の上の名前は、英数字がいいですよ)、テキトーにつけてください。




■3.画面のJSPを作成します

 画面をHTMLファイルで作成してください。
 そして、拡張子を.htm(.html)から、.jspにします。
 以上です。
具体例では

入力画面をindex.jsp
エラー画面をerror.jsp
正解率表示画面をkekka.jsp

にしています。




■4.Strutsタグをいれて、JSPを修正します
いろんなタグがあるのですが、ここではまずかんたんに、

・Strutsタグを使うため、ありかを知らせます。
Struts1.3.5の場合、こんなかんじ
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
(< > は、本当は半角です)
ほかのサイトの例というか、Struts1.1の例では、ローカル(httpで始まっていない)を見ている例があるとおもいますが、Struts1.3.5では、そこにライブラリはないので、上記のように宣言しています。

・http:htmlタグと終了タグをいれる
・http:formタグと終了タグをいれる
・入力箇所をhttp:textタグにする(input type="text"をそのように直す)
・Submitボタンをhttp:submitタグにする(input type="submit"をそのように直す)
・処理内容を出力するところにbean:writeタグをいれる。

そうすると、各画面は、以下のようになります

●入力画面:index.jsp
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<html:html>
<head>
<title>早打ちの練習</title>
</head>
<body>
<H1>早うちの練習</H1>
以下の文を打とう!<BR>
<B>This is a pen</B><BR>
<html:form action="/shori.do">
<html:text property="nyuryoku" size="20" /><P>
<html:submit property="do" value="打ち終わった!" /><P>
</html:form>
</html:html>

(上記< > ¥は、本当は半角です)

●エラー画面:error.jsp
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<html:html>
<head>
<title>早打ちの練習</title>
</head>
<body>
<h1><font color=red><bean:write name="errorForm" property="msg"  scope="request"/>!</font></h1>
<H1>早うちの練習</H1>
以下の文を打とう!<BR>
<B>This is a pen</B><BR>
<html:form action="/shori.do">
<html:text property="nyuryoku" size="20" /><P>
<html:submit property="do" value="打ち終わった!" /><P>
</html:form>
</html:html>

(上記< > ¥は、本当は半角です)

●正解率表示画面:kekka.jsp
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<html:html>
<head>
<title>早打ちの練習</title>
</head>
<body>
<H1>結果</H1>
正解率 = <bean:write name="kekkaForm" property="ritu" scope="request"/>%<BR>
</html:html>

(上記< > ¥は、本当は半角です)




次回のこのシリーズは、「5.画面に対応するActionFormを作ります」からです。



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

オーバークロックって、やりすぎると爆発するの??

2006-12-29 15:04:24 | Weblog

ここのビデオ
クロックアップ!
http://movie.matrix.jp/?jmp=00716

(ロード後、すぐに音が出ます)

オーバークロックしすぎてCPUが爆発するっていう映像なんだけど。。。
ただ、そのまえに、ファンをはずしてるから、そのせいかもしれない。。
(いや、ファンがあっても、時間の問題で爆発するのかもしれん。それはわからんが。。)

だから、萌えニュースで、オーバークロックの話をするとき
「やりすぎは、だめですよ」って、メイドさんがいうのか。。


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

Javaの画面表示-その6:Struts(その2:作成するものと設計手順)

2006-12-29 02:18:32 | Weblog

 シリーズJavaの画面表示のつづきです。前回から、MVCのフレームワークである、Strutsについてやってます。前回はインストールをしたので、今回は作成するものと、それを作成する手順についてです。




■Strutsで作成するもの(JSP+JavaBeanと比較して)

 JSPとJavaBeanでMVCを実現する場合、以下のものが必要でした
1.View(画面表示)部分のJSP
2.コントローラーのJSP
3.モデルとなるJavaBean

 Strutsの場合、それより、もっと必要なものがあって、具体的には以下のものが必要になります(赤字は、JSP+JavaBeanのときにはいらないが、Strutsでは必要なもの)

1.View(画面表示)部分のJSP
   と、それに対応するActionFormクラス
2.コントローラーのActionクラス
3.モデルとなるJavaBean
4.設定ファイルstruts-config.xml

なお、2のActionクラスは、コントローラーのJSPのかわりになります。




■Strutsの場合の設計、作成手順

 Strutsは複雑なんですけど、以下の手順で作成すると、わかりやすいです。

1.画面遷移を考える。
  このとき、画面と、Submitでサーバーと通信するところをチェックしてください

2.(別にやんなくてもいいけど)それを以下のように図にしておくと、あとで楽です


3.画面のJSPを作成します
  →画面表示を確認します

4.Strutsタグをいれて、JSPを修正します

5.画面に対応するActionFormを作ります

6.Submitでサーバーで処理するところに対応する、Actionを作ります
  →モデルのところは空っぽにしておきます

7.struts-config.xmlを設定します
  →ここまでで、表示できるかどうか確認します

8.モデルを作って、Actionから呼び出します




 4,5,6,7に関しては、順番を変えたほうが、テストファーストっぽくできるのですが、その場合、あること(Strutsタグをまったく使わないでサーバーのActionを呼び出す方法)を知らないといけないので、とりあえず、この順番で作っていきます。

 結構、めんどっちいのですが、次回から、具体的に考えます。



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

「英検DS」っていうのが、来春、出るらしい。ここまでくるとDSはCAIソフトのプラットホーム?

2006-12-28 18:54:21 | Weblog

ここのプレスリリース
イマジニア子会社、ニンテンドーDS用ソフト「英検DS」を来春発売
http://release.nikkei.co.jp/detail.cfm?relID=149523&lindID=1

によると、英検のお勉強ができるニンテンドーDS用ソフトがでるらしい。

 詳しくは、上記プレスリリースをみてもらうこととして。。
 個人的には、英検より、TOEICのほうが、いいんだけど。。。

 それはさておき、いま、漢字検定のは、でてますよねえ。。

 で、NOVAも、NOVAうさぎのゲームde留学DSが2007年2月22日コナミからでるみたいだし。。

 DSは、意外とゲームというより、お勉強用のCAIのプラットホームとして、今後発展していく??。。。としたら、これ、すごい市場じゃない!
 ゲームなら、2万円とかとれないけど、資格の勉強で2万は、ありえるもん。。




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