私は奇妙な問題を抱えています。 プロジェクトはSpring Frameworkで実行されています。クエリ文字列がSpring Frameworkによってデコードされています
ビュー:
<form method="GET" action="someUrl.htm" enctype="application/x-www-form-urlencoded" >
<label>Label</label>
<input name="val1" value="${val1}" />
...
<!-- submit button here -->
</form>
コントローラmappend someUrl.htm
に私はval1
として%
を渡したい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>
使用。しかし、私はこれをやっている時に、次のコードは、nullを返します。
request.getParameter("val1");
catalina.outを示しています
WARNING:パラメータ:文字のデコードに失敗しました。値 '%'のパラメータ 'val1'は無視されました。
私は春のクエリ文字列とrequest.getQueryString()
リターンval1=%
ではなくval1=%25
をデコードすることを見つけます。
ここでUrlDecodingを防止するにはどうすればよいですか?
これはバグですか? urlDecode
パラメータがfalse
に設定されていることに注意してください。
私は本当に%&=
のような文字を使用する必要があるため、この問題を回避するためのアイディアです。
あなたはどちらのSpringバージョンを使用していますか? – ustun
Springバージョンは2.0.5です。 – Sqeezer
文字をエンコードできませんか? http://www.ietf.org/rfc/rfc2396.txtは%をエスケープシーケンスを開始するものとして定義していますが、これに従わないと問題が発生する可能性があります。 –