Estoy teniendo un problema extraño aquí, aunque no estoy seguro si este es el error. El proyecto se ejecuta bajo Spring Framework.Cadena de consulta es decodificada por 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
usando 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>
quiero pasar %
como val1
. Pero cuando estoy haciendo esto, el siguiente fragmento de código devuelve nulo:
request.getParameter("val1");
catalina.out muestra:
ADVERTENCIA: Parámetros: Carácter fracasó decodificación. El parámetro 'val1' con el valor '%' ha sido ignorado.
me entero de que la primavera decodifica cadena de consulta y request.getQueryString()
vuelve val1=%
pero no val1=%25
.
¿Cómo prevenir la codificación de URL aquí?
¿Eso es un error? Tenga en cuenta que hay urlDecode
parámetro establecido en false
.
Cualquier idea para solucionar el problema, porque realmente necesito usar caracteres como %&=
.
¿Qué versión de Spring estás usando? – ustun
La versión de Spring es 2.0.5. – Sqeezer
¿No puedes codificar los caracteres? http://www.ietf.org/rfc/rfc2396.txt define% como iniciar en una secuencia escapada, no obedecer esto probablemente le cause problemas. –