Управляйте действиями struts (которые настроены плагином соглашения) с помощью spring

Мы используем Struts 2 + Spring 4 и хотим настроить Spring для управления действиями Struts 2.

Spring-бины определяются аннотациями.

Действия struts находятся в плагине соглашения, поэтому у нас нет никаких действий в файлах struts.xml.

Действия следующие:

//It is located in action folder so it will be located by convention plugin
package foo.bar.actions.usermanager

@Named //This will be used by Spring to located and manage this Bean
public class EditUser(){

    @Action(className="editUser") // Should I defined class name here ?!
    public String execute() {

    }
}

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

Является ли это возможным?!


person Alireza Fattahi    schedule 26.03.2014    source источник


Ответы (1)


По умолчанию атрибут className содержит имя класса, в котором действие находит плагин соглашения при создании конфигурации действия из аннотации. Это не требуется, если вы создаете обычную конфигурацию действий Struts. Но в сочетании с плагином Spring, если вы хотите делегировать создание и управление действиями Spring, вы должны предоставить такой атрибут. Это то же самое, что и class в конфигурации действий на основе xml, и такие имена используются по соглашению с плагином Spring. См. Инициализация действия из Spring и < a href="http://struts.apache.org/release/2.3.x/docs/spring-and-struts-2.html#SpringandStruts2-Alternative-HaveSpringManageCreationOfActionSupportClass" rel="nofollow">Альтернатива — есть Spring Manage Creation Документов, связанных с ActionSupport классом.

person Roman C    schedule 26.03.2014