Есть ли способ использовать переменную в операторе <c:import>
в JSP, например: <c:import url="<%=_header%>"></c:import>
, где _header
- это строка JSP, определенная таким образом;
// 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";
Мы размещаемнесколько сайтов на нескольких рынках.Способность определять один шаблон таким образом была бы идеальной, поскольку это означало бы меньше изменений в шаблонах.К сожалению, при включении <c:import url="<%=_header%>"></c:import>
серверу не удается загрузить страницу.
Но в том числе, например: <c:import url="http://assets.domain.com/uk/includes/header_uk.jsp?market=<%=cc%>"></c:import>
, кажется, работает нормально ...
Любые мысли?!
Редактировать: Оказывается, переменная <%=cc%>
в URL фактически не работала.Вместо этого пришлось сделать следующее, чтобы заставить его работать:
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>
Тем не менее, проблема с URL-адресом еще не решена, однако ...