2011-12-09 7 views
1

私のJavaサーブレットアプリケーションのWEB-INFディレクトリには、いくつかのビューファイル(拡張子は.HTML)があります。私はビュー内からコントローラで定義されている変数を参照できるようにしたいと思います。HTMLページの参照コントローラ変数

コントローラ:

String email_address = ... 

ビュー:

<INPUT type='text' name='email' value='<%= email_address %>'/> 

は残念ながら、<% =%>構文が有効ではありません。

正しい構文は何ですか?

**編集**

それが違いをした場合、私はしてHTMLを参照しています。そのための構文はありません

request.getRequestDispatcher("/WEB-INF/form_auth.html").forward(request, response); 

答えて

2

。そのような機能は存在しません。

オブジェクトをスコープに入れて、JSPで参照する必要があります。あなたの場合、HTMLファイルの動的プロパティを参照するには、JSPプロセッサ(またはその他のテンプレート機構)を介してHTMLファイルを実行する必要があります。

また、.htmlのURLをサーブレットのメカニズムでマップし、.html URLの実際の実装としてJSP(または他のテンプレート)を使用することもできます。

最近では、これはスクリプトレット(<%= %>の構文)で行われていません。これは通常のJSP EL(${ }構文)とスコープ付き属性(通常は要求スコープ)を使用して行う必要があります。例えば

、あなたは、単一の変数公開することができます:

// Java: 
// Java conventions would name this "emailAddress", not "email_address". 
request.setAttribute("emailAddress", emailAddress); 

<%-- JSP --%> 
${emailAddress} 

または完全なDTOオブジェクトを作成します。

// Java 
dto.emailAddress = "[email protected]"; 
request.setAttribute("dto", dto); 

<%-- JSP --%> 
${dto.emailAddress} 
+0

+1を - 私の答えは完全に余計でした。 –

+0

@lwburk言うのは難しい。本当に '.html'ファイルであり、コンテナによって処理されていなければ、OPが期待しているので、それは確かに動作しません。 –