2012-04-09 5 views
1

Ich benutze Tomcat7. Die Struktur meines Projektes ist:kann Jsp param nicht senden, wenn Sie HttpServletRequestWrapper verwenden?

  • as1.jsp

  • as2.jsp

Der Inhalt web.xml ist:

<filter-mapping> 
      <filter-name>filter1</filter-name> 
      <url-pattern>/as1.jsp</url-pattern> 
     </filter-mapping> 

filter1 in HttpServletRequestWrapper verwendet:

... 
    RequestWrapper requestWrapper = new RequestWrapper(req); 
    requestWrapper.setParameter("params", new String[]{Item.getParams()}); 
    chain.doFilter(requestWrapper, response); 
...... 

Der Inhalt as1.jsp ist:

hi <br/> 
<jsp:include page="as2.jsp"> 
     <jsp:param name="test" value="true" />    
</jsp:include> 

Der Inhalt as2.jsp ist:

as2 runed 
<br/> 
test:<%= request.getParameter("test") %> 

Wenn ich Projekt stelle ich dieses Ergebnis:

hi 
as2 runed 
test:null 

und wenn entfernen HttpServletRequestWrapper in filter1 Ich erhalte korrektes Ergebnis:

hi 
as2 runed 
test:true 

Bitte helfen Sie mir, wie bekommen request.getParameter("test") mit HttpServletRequestWrapper in filter1? Danke.

+0

Sie verwenden 'requestWrapper.setParameter (" params ", neue String [] {Item.getParams()}); 'und dann' request.getParameter ("test") '. Vielleicht versuchen Sie es mit 'request.getParameter (" params ")'. –

+0

request.getParameter ("params") gibt den korrekten Wert zurück, aber jsp params gibt den Nullwert zurück –

Antwort

0

Sieht aus wie Filter RequestWrapper überschreibt .getParameter() Methode und nicht zu der ursprünglichen Anforderung delegieren.

+0

Bitte, Beschreiben Sie Ihre vorgeschlagene Lösung mehr? –

+0

danke. Das Problem wurde mit einer modifizierten .getParameter() -Methode gelöst. –

+0

wie wurde es gelöst? –

Verwandte Themen