0

アプリケーションを古いバージョンの struts から最新の「1」バージョン (1.3.10) にアップグレードしています。ここで、Action を処理しようとするコードは常に null 転送オブジェクトを返します。Struts のソース コードを添付しましたが、常に null を返すようです。アップグレードする前は、コードは正常に機能し、返されたときに転送オブジェクトが設定されていました。

    forward = super.processActionPerform(request, response, action, formInstance, mapping); 
    return (forward);

次に、 processActionPerformのStruts コードを次に示します。

protected ActionForward processActionPerform(HttpServletRequest request,
    HttpServletResponse response, Action action, ActionForm form,
    ActionMapping mapping)
    throws IOException, ServletException {
    try {
        return (action.execute(mapping, form, request, response));
    } catch (Exception e) {
        return (processException(request, response, e, form, mapping));
    }
}

ご覧のとおり、これは Action 実行メソッドを呼び出します。以下は、Struts の execute メソッドのコードで、常に null を返すことがわかります。

public ActionForward execute(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response)
    throws Exception {
    return null;
}

これを機能させるには、別の Struts クラスまたはメソッドを使用するように変更する必要があるかどうか疑問に思っています。任意の支援をいただければ幸いです。

ありがとう!

4

1 に答える 1

0

Ericbn は実際には正しいです。申し訳ありません、Eric。はい、Action クラスの execute メソッドをオーバーライドする必要がありました。これらは現在、Action クラスから削除された (以前は非推奨だった) 'perform' をオーバーライドします。ありがとう!ポール

于 2014-10-22T15:04:49.690 に答える