[Seasar-user:17566] Re: 【SAStruts】 urlPatternに使えない文字について
Yasuo Higa
[E-MAIL ADDRESS DELETED]
2009年 6月 1日 (月) 12:53:43 JST
ひがです。
> SAStruts関係者のみなさま
>
> はじめまして、kentoと申します。
>
> 現在進行中のプロジェクトでSAStrutsを使わせていただいたのですが
> urlPatternがらみで困ったことがありました。
>
> たとえば、「/item/{name}」とアクセスされたときにnameで指定された
> 商品のページが表示されるとします。
> ItemAction#index()でurlPatternに{name}と設定すれば実現できますが
> 以下の場合に問題がありました。
>
> 1) nameに「.」(ドット)が含まれている場合
>
> RoutingFilterで、pathに「.」が含まれている場合にスキップする処理が
> はいっているためItemAction#index()が呼び出されない。
> URLエンコードしても、request.getServletPath()で得られるpathは
> デコードされたものになってしまうため、同様。
>
> 2) nameに「 」(スペース)が含まれている場合
>
> URLエンコード時にスペースは「+」に置換されますが、
> request.getServletPath()では「+」をスペースに置換しないため
> (Apache Tomcat 5.5.26にて。バグ?)
> 本来はスペースであるはずの部分が「+」になってしまう。
> 「%2B」が「+」にデコードされてしまうため、スペースなのか「+」なのか
> 区別できない。
>
個人的には、/や?エンコードしてURLとして使えるようにするのは、
あまり賛成できません。
何かとトラブリそう。
.はできてもいい気がします。もともと、URLとして使えるので。
Seasar-user メーリングリストの案内