[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 メーリングリストの案内