2009-05-22 9 views
2

"新しい" JSP 2.0タグファイルタグは非常に便利で、ほとんどの場合(少なくとも私が見てきたように)、Javaクラスよりはるかに読みやすい形式を提供します。しかし、タグファイルはのほとんどの場合、で行うことができますが、Javaクラスタグでできるすべてのことはできません:「スクリプト」本文の内容を持たなければなりません(開始タグと終了タグの間に "<% 。JSP 2.0のタグファイルにBody-Contentが "JSP"でないのはなぜですか?

だから、私の質問は、マルチパートである:

  1. 誰もこれがある(設計の観点から)なぜ知っていますか?タグファイルが実装されているなどの理由で、そのようなコンテンツを持つことは本質的に不可能ですか?
  2. body-content = "JSP"を(今後のJSP標準の将来のバージョンで)タグファイルに含めることを将来の計画があるかどうか知っていますか?
  3. 誰かがスクリプトファイルを持っているようにタグファイルを「ハックする」方法を知っていますか?(スクリプトレスの本文コンテンツをどうにかして処理するなど)

基本的に私の夢は、いつか誰かが

内部

<%= myVar %>

を置く、と私はちょうどその夢は絶望的であるかどうかを判断しようとしている場合は例外が発生していないタグファイルを作成することですか否か。

+0

タグファイルタグでは、単純ではない(古典的な)タグを作成できないのはなぜですか(技術的な制限はありますか)。 タグファイルを使用して「古典的な」タグを作成する方法はありますか(「ハッキング」に頼る必要がある場合もあります)。 – machineghost

+0

「あなたのJSPでのスクリプト化を避ける」というすべての回答の問題は、アプリケーション全体(7年間のコード)がJSPで構築されていることです(もちろんクラスもありますが、コントローラ分離)。だから残念ながら私はすでにウィンドウに書き込んだものすべてを投げることはできません。クラス(* wince *)を使用して新しいタグをすべて開発するか、既存のページでタグファイルを使用する方法を見つける...このスタックオーバーフロークエリは、後者を行う方法を理解しようとする私の方法です。 – machineghost

+0

さらに、明確にするために、実際にスクリプトファイル内にタグファイルタグを持たせることができない場合は、どうしてこのような方法がないのかを説明する人にこの賞金を贈呈します。しかし、私は本当に誰かが(たとえボディーコンテンツを "tagdependant"に設定してから、サーブレットを介して何とかコンテンツを送り返すような "ハッキリ"な解決策を必要としたとしても)やり方を考えています。 – machineghost

答えて

3

JSPタグは、プレゼンテーション層とコードの背後に懸念が完全に分離されるように設計されています。 JSPページはデザイナーによって編集されるはずで、Javaコードを使用するのは適切ではありません。

私はこの考え方でコーディングの習慣を適応させる必要があると思います。すべてのJavaコードをBeanに移動できます。そこに必要なものを実行し、適切なBeanをJSPページに渡します。例外処理もそこに行かなければなりません。これで十分でない場合は、いつでも独自のタグを作成して使用できます。

2

古いスタイルタグを使用している場合、つまりBodyTagから派生したタグを使用している場合は、これらのタグを使用できます。しかし、SimpleTagの実装はできません。

JSPフラグメントは、スクリプトレットをサポートしていないので、たSimpleTagの私はあなたができる場合は、すべてのタグを記述するためにJavaを使用しないよう、そしてちょうど使用したい「JSP」

個人的に

することはできません新しい.tagスタイルそのようなタグファイルにはJavaコードを組み込むことができますが、一般的には、おそらくそれが間違っていると思われます。

+0

"古いスタイルのタグを使用している場合は、これを行うことができます" Heh、私は知っています。だから私はbody-content JSPについて全く知っているのです:-)しかし、私はタグファイルを使って同様の機能を実現したいと思います。あなたが指摘したように、それらはJavaクラスよりもはるかに優れたタグ作成の仕組みです。 私のJSPにJSPのコンテンツがあるので「何か間違っている」として...私は従いません。 ELScriptとJSTLは何かをすることができますが、すべてを行うことはできません。さらに、スクリプトを使用する従来の数多くのページが残っているため、スクリプトのビットなしですべてをやり直すことができたとしても、あまりにも時間がかかるため、できません。 – machineghost

+0

これは古いスレッドだと分かっていますが、私はJSPタグの質問を掘り下げていました...しかし、このような状況では、なぜアップグレードしますか?あなたは古いJSP形式に固執することができますか、または他の要件がありましたか? – stivlo

関連する問題