Struts2: как читать параметры из <jsp: include> - PullRequest
4 голосов
/ 24 декабря 2009

Когда я включаю JSP, либо <jsp:include /> и указываю параметры - они идеально доступны для EL ${param.XXX}, но не для OGNL %{#parameters.XXX}.

Например:

<jsp:include page="fragment.jsp">
    <jsp:param value="foo" name="bar" />
</jsp:include>

и в фрагменте. Jsp

value of foo in EL   : ${param.bar} 
value of foo in OGNL : <s:property value="%{#parameters.bar}" />

ПОЧЕМУ ??? Что я должен использовать вместо этого в тегах Struts?

Примечание: при <s:include/> вместо <jsp:include/> параметр недоступен даже при EL.

Ответы [ 4 ]

3 голосов
/ 09 августа 2011

Вот что я делаю, чтобы решить проблему:

В том числе страница:

<s:set name="searchName" value="my search term" />
<jsp:include page="/WEB-INF/page/whatever.jsp" />

В /WEB-INF/page/whwhat.jsp:

Your searchTerm is <s:property value="#searchName" />

Я надеюсь, что это работает для вас!

2 голосов
/ 06 марта 2012

Я недавно столкнулся с этой проблемой. Я обнаружил, что причина в том, что параметры в <s:include> не хранятся в request.parameters объекте ActionContext, но хранятся в HttpServletRequest страницы JSP. Таким образом, параметры могут быть получены через EL(${param.xxx}) или <% request.getParameters("xxxx") %>, но мы не можем получить его через (Struts) ongl. Потому что параметры не в ActionContext.

Если вы настаиваете на использовании ongl, вы можете добавить параметры в ActionContext через jsp <% %> или EL, а затем вы можете получить параметры через ongl.

1 голос
/ 25 декабря 2009
0 голосов
/ 15 ноября 2012

Попробуйте следующее.

<s:property value="%{#parameters['paramName']}"></s:property>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...