[Seasar-user:19363] Re: 【SAStruts】urlPatternで複数パラメータを受け取りたい

ice [E-MAIL ADDRESS DELETED]
2010年 2月 22日 (月) 10:00:06 JST


いつも大変お世話になっております。
iceと申します。

ひがさん>
アドバイス有難うございます。

> /{param1}/{param2}/
> のような設定ならはじいているつもりですが、
>
> /p1_{param1}/p2_{param2}/
> は特にはじいている意識はありません。
> 正規表現に一致していないのかもしれないですね。

頂戴したヒントを元に、ソースを追いましたところ、
S2ExecuteConfig.setUrlPattern() で、

"([^/]+)" となっている箇所を、"([^/]*)" に書き換えることで、
とりあえず期待動作を確認するに至りました。
(これから検証を進める必要が有ると考えております。)

これを受けて改めてアドバイスをいただきたいのですが、
S2ExecuteConfigの差し替えは、どのように行うのがお作法に則りますでしょうか?

また、
> /{param1}/{param2}/
> のような設定ならはじいているつもりですが、
>
> /p1_{param1}/p2_{param2}/
> は特にはじいている意識はありません。
> 正規表現に一致していないのかもしれないですね。

と言うことですので、今後SAStruts本体に手が入るなどの措置は考えられますでしょうか?


以上、よろしくお願い致します。


2010年2月18日12:03 Yasuo Higa <[E-MAIL ADDRESS DELETED]>:
> ひがです。
>
>> いつも大変お世話になっております。
>> iceと申します。
>>
>> Executeメソッドに対してのurlPattern指定で
>> 複数のパラメータを取得したいと考えております。
>>
>> アノテーション部分は以下のようなイメージなのですが、
>>
>> @Execute(
>>  validator = false,
>>  urlPattern = "search/p1_{param1}/p2_{param2}/")
>>
>> 1).パラメータが全て指定された場合
>> http://localhost:8080/sample/search/p1_100/p2_200/
>> 期待通り、param1およびparam2の変数で受け取ることが可能です。
>>
>> 2).パラメータが全て指定されない場合
>> http://localhost:8080/sample/search/p1_/p2_200/
>> 意図としてはparam2のみに値を設定することなのですが、
>> param1に格納すべき値を指定せずにリクエストすると、404となり表示されるのは下記の通りです。
>>
>> 説明 The requested resource (/sample/search/p1_/p2_200) is not available.
>>
>> 期待の挙動を実現するために、RoutingFilterを独自実装したものに差し替えようかと考えておりますが、
>> 転ばぬ先の杖ということで、RoutingFilterが、2).の例を許容しないことに
>> 何か理由がございましたらご教授いただけますようお願い致します。
>> (まだRoutingFilterのソースを追っていない段階で恐縮です)
>
> /{param1}/{param2}/
> のような設定ならはじいているつもりですが、
>
> /p1_{param1}/p2_{param2}/
> は特にはじいている意識はありません。
> 正規表現に一致していないのかもしれないですね。
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>


Seasar-user メーリングリストの案内