することは、私たちのようなJSPで<c:import>
文で変数を使用することができますどのような方法があります:JSPの文字列は、このように定義されて_header
<c:import url="<%=_header%>"></c:import>
は、。JSP - C言語でURLとして変数を使用します。import
// host will typically equal: uk.domain.com or fr.domain.com
String host = request.getServerName();
// cc is attempting to become the country code for the domain
String cc = host.substring(0, host.indexOf("."));
String _header = "http://assets.domain.com/" + cc + "/includes/header_" + cc + ".jsp";
複数の市場にまたがって多数のサイトをホストしています。このように1つのテンプレートを定義できることは、テンプレートの変更が少なくなるため理想的です。残念ながら、<c:import url="<%=_header%>"></c:import>
を含めると、サーバーはページを読み込めません。
しかし、例えば、含む:
が正常に動作するようです...<c:import url="http://assets.domain.com/uk/includes/header_uk.jsp?market=<%=cc%>"></c:import>
任意の考え?
編集:はURLで<%=cc%>
varが実際に働いていませんでしたが判明。代わりにそれを働かせるために次のことをしなければならなかった。
String cc = host.substring(0, host.indexOf("."));
session.setAttribute("cc", cc);
...
<c:import url="http://assets.domain.com/uk/includes/header_uk.jsp"><c:param name="market">${cc}</c:param></c:import>
はまだあなたが確実にスクリプトレットタグライブラリ/ ELとを混在させることはできません、まだしかし...
何が起こりますか? – Bozho
残念ながら、私たちが取り組んでいる環境を制御していないため、問題を絞り込むことはできません。サーバーがランタイムエラーを検出すると、ブラウザが404ページにリダイレクトされます。正確には役に立たない! – Alex