Struts 2 - Как сопоставить метод с подстановочными знаками для исключения? - PullRequest
1 голос
/ 25 июня 2010

Я работаю со Struts2. Вот фрагмент моего файла struts.xml:

<action name="*test" class="fend.config.TestAction" method="{1}">
            <exception-mapping result="fail" exception="java.lang.UnsupportedOperationException"/>
            <result name="success">/registerCrisis.jsp</result>
            <result name="dummy">/dummy.jsp</result>
            <result name="fail">error.jsp</result>
            <interceptor-ref name="configStack"/>
        </action>

Когда я запускаю приложение, как: http://localhost:8080/appContext/viewtest.action Struts вызывает метод view в классе TestAction. В методе просмотра я поместил код, который генерирует java.lang.UnsupportedOperationException только для целей тестирования.

Я намеревался перенаправить результат с именем fail, чтобы отобразился error.jsp. Но это не перенаправление на страницу. Что я пропустил?

Спасибо.

1 Ответ

0 голосов
/ 23 мая 2019

Вы можете создать другое действие под существующим действием, это может позволить остальным путям (пути ошибок) перенаправить другое действие, это может позволить остальным путям (пути ошибок) перенаправить другую страницу.

<action name="*test" class="fend.config.TestAction" method="{1}">

        <result name="success">/registerCrisis.jsp</result>
        <result name="dummy">/dummy.jsp</result>
        <result name="fail">error.jsp</result>
        <interceptor-ref name="configStack"/>
    </action>

<!-- SOLUTION, ADD THIS-->

    <action name="*" method="myErrorMethod" class="fend.config.TestAction">
        <result type="redirectAction">
            <param name="namespace">/myErrorPath</param>
            <param name="actionName">myErrorMethodtest</param><!--*test (if your error method has wildcard) -->
        </result>
    </action>
...