Ho un problema strano qui, non sono sicuro se questo sia l'errore. Il progetto è in esecuzione in Spring Framework.La stringa di query viene decodificata da Spring Framework
La vista:
<form method="GET" action="someUrl.htm" enctype="application/x-www-form-urlencoded" >
<label>Label</label>
<input name="val1" value="${val1}" />
...
<!-- submit button here -->
</form>
controller mappend a someUrl.htm
utilizzando SimpleUrlHandlerMapping
<bean id="parameterMethodNameResolver"
class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver"> <property name="methodParamNames">
...
</bean>
<bean id="handlerMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="urlDecode" value="false" />
<property name="mappings">
<props>
<prop key="**/someUrl.htm">someController</prop>
</props>
</property>
</bean>
voglio passare %
come val1
. Ma quando sto facendo questo, il seguente pezzo di codice restituisce un valore nullo:
request.getParameter("val1");
catalina.out mostra:
AVVERTENZA: Parametri: carattere decodifica riuscita. Il parametro 'val1' con valore '%' è stato ignorato.
scopro che la primavera decodifica stringa di query e restituisce request.getQueryString()
val1=%
ma non val1=%25
.
Come impedire UrlDecoding qui?
È un errore? Si noti che il parametro urlDecode
è impostato su false
.
Qualsiasi idea per risolvere il problema, perché ho davvero bisogno di utilizzare caratteri come %&=
.
Quale versione Spring stai usando? – ustun
La versione Spring è 2.0.5. – Sqeezer
Non puoi codificare i personaggi? http://www.ietf.org/rfc/rfc2396.txt definisce% come iniziante in sequenza di escape, non obbedire a questo probabilmente causerà problemi. –