2009-02-25 13 views
1

JSPを使用してWebアプリケーションを作成していますが、実際には「XMLスタイル」のJSPディレクティブ(< jsp:scriptlet>の代わりに<%)を使用したいと考えています。しかし、私のコードでジェネリックを使用すると、コードの内容は有効なXMLではなく、サーバー(私はJetty 6を使用)がXMLとしてファイルを解析しようとするとコンパイルエラーが発生します。 ジェネリックでXML形式のJSPを書くには?

<jsp:scriptlet> 
List<String> myText = new List<String>(); 
</jsp:scriptlet> 

は、しかし、明らかに、このコードはコンパイルに失敗します。

は例えば、私が書きたいです。私はコードの周りにCDATAラッパーを追加しようとしましたが(すぐにjsp:scriptletタグ内にあります)、何の違いも見られません。

JSPスクリプトレット内でジェネリックを使用することは可能ですか?

ありがとうございました。

答えて

2
<jsp:scriptlet> 
    List&lt;String> myText = new List&lt;String>(); 
</jsp:scriptlet> 

私は(すぐにJSP内:スクリプトレットタグ)をコード周りCDATAラッパーを追加しようとしたが、それは何の違いを作るために見ていません。

本当に?それも機能するはずです。しかし、JSP XMLフォーマットを便利であるとか何かを批判した人は誰もいませんでした...

+0

私は何か問題があったかどうかは分かりません。空のページで再現しようとすると、うまくいきます。 CDATAがなければ、私は問題のあるページで何を得るのかが違うのです。奇妙な、しかし私はそれを今すぐ行くことができます。 – Guss

+0

うん、それは私のせいだった - 私はばかだ。問題は、整形式のXMLではない古いスタイルのJSPをXML構文のJSP 2.0に変換しようとしたことです。 JettyがXMLパーサでページを解析しようとしたとき、構文が正しいにもかかわらずXML解析が失敗しました。 – Guss

+0

悲しいことに、属性のCDATAのような回避策はありません。私はちょうどuseBeanの型属性でこの問題を抱えています。 <は<に置き換えられますが、Eclipseの検証では無効とマークされます... –

0

あなたが本当にJSPを書きたい場合は、私がタグを作成(またはstandard tag library(またはthis)を使用)とスクリプトレットの明確なページを維持することを目指したい - またはジェネリックなし。適切なMVC分離(または少なくとも残りのビューから分離されたビュー)では、一般的に標準のタグライブラリのみを使用し、メンテナンスが容易でxmlとして自動的に検証されるjspを生成することができます。

jspで任意のフレームワークを使用する予定ですか、またはJSP内でリクエスト処理を処理したいですか?

+0

現在、私は既存のシステムを改良しており、アーキテクチャの再設計はこのプロジェクトの範囲外です。 - ) – Guss

+0

しかし、あなたはジェネリックスをjspにしたいと思っているように、現在はそこにいるようではありません。なぜ、ジェネリックをJSPタグに追加するのではなく、どうしてですか?数年前には、jspのコードを最小限に抑えるために、すべてのjspにロジックを含む付随するクラスがありました(タグが難しい場合) –

+0

旧式のJSPコードを使用する現在の実装にはジェネリックがあります。できるだけ多くのXMLスタイルのコードに移動して、読みやすく、検証し、管理しやすくしたいと考えています。ジェネリックは、現在のページだけに関係するコードによく使われるので、それを抽象化することはオプションではありません。 – Guss

0

このページは桟橋にありますかjsp configuration

ソースとターゲットの言語レベルが1.5に設定されていますか?

+0

Eclipseでは、はい(私は実際に1.6を使用しています)。 webappはバージョン2.4に設定されています(意味は分かりません)。 – Guss

関連する問題