本文へジャンプ

【FAQ】WAS JSPでのダブルクォートの使用について

資料作成日 2007年06月19日
資料更新日 2007年06月19日

<概要>

TomcatからWASへアプリケーションを移行する場合、JSPでのダブルクォートの使用にご注意ください。

<内容/目次>

Tomcatで動いているアプリケーションをWebSphere Application Server(WAS)に移行する場合に、JSPファイルのダブルクォートの使用で問題になる場合があります。以下の情報を参考に、アプリケーションの修正を行ってください。

この文書はUSのTechNotes(FAQ)の翻訳になります。最新の情報については、以下のTechNotesをご参照ください。

"JSP Compilation when double quotes are used"
http://www.ibm.com/support/docview.wss?uid=swg21259752

【問題点】
WASのJSPでは、ダブルクォート(")の中でさらにダブルクォートが使用されている場合、JSPのコンパイルに失敗します。

【原因】
WASのJSPエンジンで使用されているパーサーは、ダブルクォートの中にあるダブルクォートを認めません。
例えば次のコードは、入れ子になったダブルクォートが含まれるために、JSPのコンパイルに失敗します。

<html:hidden property="system" value="<%=(String)request.getAttribute("system")%>"/> <html:hidden property="envName" value="<%=(String)request.getAttribute("envName")%>"/>

【解決策】
JSPエンジンはダブルクォートの中のダブルクォートを認めていませんので、どちらか一方をダブルクォートからシングルクォートに変更するか、内側のダブルクォートの前にバックスラッシュ(\")を付けることで、この問題を回避することができます。

<html:hidden property="system" value='<%=(String)request.getAttribute("system")%>'/> <html:hidden property="envName" value='<%=(String)request.getAttribute("envName")%>'/>

WASのJSPエンジンで使用されているパーサーのアルゴリズムは、Tomcatで使用されいるJSPエンジンと異なります。そのため、上記のコードはTomcatでは動きますが、WASでは動かないことになります。


---追記---

Tomcatからの移行の考慮点は、以下のRedbookもあわせてご参照ください。(他にも注意点が記載してあります。)

"Migrating Applications from WebLogic, JBoss and Tomcat to WebSphere V6"(英語)
http://www.redbooks.ibm.com/abstracts/SG246690.html 

<添付資料>

<文書情報>

  1. 製品/カテゴリー名

    WebSphere Application Server

  2. 有効期限

    2015年06月19日

  3. 発表日

  4. 資料番号