Получить зависимости JAR
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-convention-plugin</artifactId>
<version>2.3.20</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-json-plugin</artifactId>
<version>2.3.20</version>
</dependency>
Плагин конвенции
Плагин конвенции входит в состав Struts начиная с версии 2.1 и заменяет плагин Codebehindи плагины Zero Config.Он предоставляет следующие функции:
Местоположение действия по соглашениям об именах пакетов
Местоположение результатов (JSP, FreeMarker и т. Д.) По соглашениям об именах
Имя класса для соглашения об именах URL
Имя пакета для соглашения о пространстве имен
Переопределение имени действия с использованием аннотаций
Переопределение пространства имен с использованием аннотаций
Переопределение пакета XWork с использованием аннотаций
Установить родительский пакет
Используя аннотацию, установите пакет в качестве json-default для поддержки JSON.
@ParentPackage("json-default")
Установите тип результата
@Result(name="success", type="json")
Определить фильтр в web.xml
Определить фильтр Struts 2 в web.xml и передать класс действия, определив actionPackages.
Класс действия
В этом классе данные преобразуются в формат JSON.
@Result(name = "success", type = "json")
@ParentPackage("json-default")
public class StrutsJsonAnnotationAction extends ActionSupport {
private static final long serialVersionUID = 3516335522937177571L;
private String name = "Narendra Modi";
private String designation = "Prime Minister of India";
private String dob = "17 September 1950";
private String[] education = {"MA", "BA"};
private List<String> favBooks = new ArrayList<String>();
private Map<String, String> assumedOffice = new HashMap<String, String>();
public StrutsJsonAnnotationAction() {
favBooks.add("Ramayan");
favBooks.add("Geeta");
assumedOffice.put("President", "Pranab Mukherjee");
assumedOffice.put("Preceded by", "Manmohan Singh");
}
@org.apache.struts2.convention.annotation.Action("/india")
@Override
public String execute() {
return SUCCESS;
}
Источник: http://www.websparrow.org/struts/struts2-and-json-integration-using-annotation-example