Struts 2 добавляет сопоставление исключений для определенных действий.

Рассмотрим проект с большим количеством аннотированных действий.

public class TransferMoney(){

    @Action("transfer-money-show-form")
    public String showForm();

    @Action("transfer-money-confirm")
    public String confirmForm();

    @Action("transfer-money-result")
    public String result();
}

Я хочу добавить отображение исключений в confirmForm, чтобы я мог сделать это как:

@Action(value = "transfer-money-confirm", 
        exceptionMappings = 
                 {@ExceptionMapping(
                       exception = "java.lang.Exception", 
                        result = "exception")
                  }
        )

Однако это лучше?! Как я уже сказал, у меня много действий, и я не хочу добавлять exceptionMapping для каждого из них по одному. Имя действия, которое я хочу добавить к ним, заканчивается на confirm, но оно кажется бесполезным, потому что сопоставление исключений не принимает регулярное выражение.


person Alireza Fattahi    schedule 07.06.2015    source источник
comment
Прочтите это.   -  person Roman C    schedule 07.06.2015
comment
Глобальное сопоставление исключений в struts.xml.   -  person Aleksandr M    schedule 08.06.2015
comment
Этот вопрос и ответ @AleskandrM могут вас заинтересовать   -  person Andrea Ligios    schedule 08.06.2015
comment
@AleksandrM Могу ли я определить шаблон для действий в глобальном исключении? Например, если java.lang.Exception истинно, а имя действия содержит «подтвердить», то перенаправить на глобальную страницу.   -  person Alireza Fattahi    schedule 08.06.2015
comment
Я думаю, что пока нет решений для копирования / вставки, отклонено.   -  person Roman C    schedule 08.06.2015
comment
Не с узором, нет. Но глобальные сопоставления исключений относятся к пакету S2, поэтому поместите все действия confirm в отдельный пакет и наслаждайтесь.   -  person Aleksandr M    schedule 08.06.2015
comment
@AleksandrM Спасибо, пожалуйста, отправьте это как ответ, чтобы я мог его принять :)   -  person Alireza Fattahi    schedule 08.06.2015


Ответы (1)


Вы можете использовать <global-exception-mappings> в struts.xml. Сопоставления глобальных исключений предназначены для каждого пакета S2, поэтому вы можете определить различные сопоставления для действий, поместив их в отдельные пакеты.

<package name="default">
    ...
    <global-exception-mappings>
        <exception-mapping exception="java.lang.Exception" result="exception"/>
    </global-exception-mappings>
    ...
</package>
person Aleksandr M    schedule 08.06.2015