[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)。 |