<概要>
Tomcatから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
<添付資料>
<文書情報>
製品/カテゴリー名
WebSphere Application Server
有効期限
2015年06月19日
発表日
資料番号
