[YMIR-207] [ymir-extension] requestParameterでactionをdispatchするようになっているケースでnameつきボタンしかない場合はデフォルトのPOSTアクションを生成しないようにする Created: 2008-07-31  Updated: 2008-08-29  Resolved: 2008-08-29

Status: Closed
Project: Ymir
Component/s: ymir-extension
Affects Version/s: 0.9.5
Fix Version/s: 0.9.6

Type: Improvement Priority: Minor
Reporter: skirnir Assignee: skirnir
Resolution: Fixed Votes: 0
Labels: None


 Description   

requestParameterでactionをdispatchするようになっているケースでnameを持つボタン等しかない場合は、ボタンに対応するアクションメソッドだけが呼ばれるはずで、デフォルトのPOSTアクションが呼ばれることはない。そのため、デフォルトのPOSTアクションを生成しないようにする。

ただし、nameがJavaの識別子として不適切なケース等、デフォルトのPOSTアクションが呼ばれうる場合はデフォルトのPOSTアクションを生成する。

また、POST以外の場合もExceptionをスローするようにはしない。これはGET等の場合はrequestParameterなしでも呼ばれる可能性が低くないため。



 Comments   
Comment by skirnir [ 2008-08-29 ]

対処しました(r1448)。

Comment by skirnir [ 2008-08-29 ]

「また、POST以外の場合もExceptionをスローするようにはしない。これはGET等の場合はrequestParameterなしでも呼ばれる可能性が低くないため。」としていたが、パラメータなしでGETアクセスされるケースが開発者の意識からもれてしまうのが怖いので、POST以外でもデフォルトActionは生成しないようにする。

上記挙動はformのactionに対応するページに関する話であり、formがポストバックの場合は自動生成対象ページのパスとactionが同一であるためfornからのアクション自動生成ではなく自動生成対象ページに関するアクション自動生成でデフォルトアクションが生成されるので問題ない。ポストバックでない場合はactionの指すURLに直接アクセスした時点でアクションがないというエラーになるが、その時点で開発者は必要なアクションが存在しないことに気づくことができる。

Comment by skirnir [ 2008-07-31 ]

対処しました(r1312)。

Generated at Sat Apr 12 03:27:31 JST 2025 using Jira 10.5.0#10050000-sha1:9d9d098bb7b67e8dba8da380ba9c3900d82ac3cf.