使い方としていいのかは不明
例えばこんな感じで検索画面の初期情報を取得するActionを定義したとする。Formは特に必要ないのでactionタグのname属性は書かない(これっていいのかな?)。
これはこれでActionはちゃんと実行される。が、S2Strutsのオートバインディング機能が働いたときに、Formのnameがnull、当然scopeもnullなのだが、ActionExecuteProcessorImpl#setActionFormの以下の部分でelseの処理、つまりSessionへのFormのセットが実行されて
if (REQUEST.equals(mapping.getScope())) { // mapping.getScope()はnull request.setAttribute(mapping.getAttribute(), form); } else { HttpSession session = request.getSession(); session.setAttribute(mapping.getAttribute(), form); // mapping.getAttribute()もnull }
エラーとなってしまう。
java.lang.IllegalArgumentException: setAttribute: nameパラメタはnullであってはいけません