- - PR -
JSP で コードビハインド
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-09-28 00:49
NetBeans6.1
<%@page contentType="text/html" pageEncoding="UTF-8" extends="common.Index3" %> 上記のようにすると、ASP.NET みたいにコード分離が出来るらしいのですが、 Java では、ASP.NET のように ASPX が 元クラスの派生クラスになるように コーディング(されている)してるのを見たことがありません。 そーゆーフレームワークなりがあるならば教えてください。 現在、試行錯誤中ですが、 HttpJspPage インターフェースを実装しているが、abstract にすると、JSP でエラーが出て、abstract しないと、_jspService が無いって怒られる始末。 HttpJspPageのJavaDocには、_jspService は自動的にバインドされるから実装 側で意図しなくてよい、云々と書いてあり、詳細はJSP仕様書 JSP_Engine を 見ろ、と書いてあるが、JSP仕様書のどこにその具体的記述があるのかさっぱり です。 SimplifiedJSPServlet クラスのサンプル http://www.koders.com/java/fid75C9C7C526ADBF50B3FF7199C4F8042C5E6F756C.aspx?s=mdef:insert HttpJspPageインターフェース http://sdc.sun.co.jp/java/docs/j2ee/sdk_1.3/ja/techdocs/api/javax/servlet/jsp/HttpJspPage.html JspPageインターフェース http://sdc.sun.co.jp/java/docs/j2ee/sdk_1.3/ja/techdocs/api/javax/servlet/jsp/JspPage.html ※ abstract public class Index3 implements HttpJspPage { //... _jspService 以外すべて実装すると、 //... 初回一発目で、init() が呼ばれ、 //... 以後JSP参照毎に service() が呼ばれる //... とこまでは確認。ゴールが近いのか遠い //... のかさっぱりわかりません。。。 } | ||||||||||||
|
投稿日時: 2008-09-29 17:16
解決してないけど、TOMCAT6.0のソース見ました。
org.apache.jasper.runtime.HttpJspBase にそのまんまがありました。 これと同じことやってあげれば、少しは先に進みそうです。 JSPもサーブレットだったってこと再認識しました;; 以上 http://tomcat.apache.org/download-60.cgi | ||||||||||||
|
投稿日時: 2008-09-30 00:51
>上記のようにすると、ASP.NET みたいにコード分離が出来るらしいのですが、
>Java では、ASP.NET のように ASPX が 元クラスの派生クラスになるように >コーディング(されている)してるのを見たことがありません。 私も見たことがあります。 >そーゆーフレームワークなりがあるならば教えてください。 私が知る限り、そのようなフレームワークはありません。 jsp の親クラスに処理をさせるのではなく、予めサーブレットや EJB で前処理をしておき jsp では表示のみを行わせるのが主流ではないでしょうか。 | ||||||||||||
|
投稿日時: 2008-09-30 01:59
インギさんレスありがとうございます。
あることはあるのですね。フレームワークとか厳かなものとしては存在しないだけで。 むーん。まだTOMCATソース精査してないけどなんか足りない。
こうすると、コンストラクタが呼ばれます。
テスト用JSPはコレ。 今のところコンパイル前の時点でJSP構文エラーが出てしまいます。 _jspService が宣言されてない、ってゆーエラー。当然といえば 当然なんですが。
もうちょっとがんばります。 | ||||||||||||
|
投稿日時: 2008-09-30 02:08
>jsp の親クラスに処理をさせるのではなく、予めサーブレットや EJB で前処理をして>おき jsp では表示のみを行わせるのが主流ではないでしょうか。
個人的に、JSP 内で、request に setAttribute したやつ引っ張ってくる記述したり 何々クラスのインポートしたり、な記述が見られるのは好きじゃないというか、 ASP.NET がこーゆー構成だから。 シーサーみたいに、XHTML のプロセッサ導入して、HTML をパースしつつ ベースクラスを初期化してコマンドに相当するイベントメソッドを呼び出して。。。 とかやるより、JSP の親クラスとして .java が存在すれば、コードもすっきり しません?というか、しませんよね。Javaはパーシャルクラス定義できません もんね。 |
1