Статьи

Руководство по Struts 2: руководство по Struts 2 Ajax с примером

Добро пожаловать в последнюю часть из 7 статей серии руководств по Struts 2 Framework. В предыдущей статье мы увидели, как реализовать функцию загрузки файлов в Struts 2. В этой статье мы увидим, как мы можем реализовать поддержку Ajax в веб-приложении с использованием инфраструктуры Struts2.

Поддержка AJAX в Struts 2

Struts 2 обеспечивает встроенную поддержку AJAX с использованием библиотеки Dojo Toolkit. Если вы новичок в Dojo, возможно, вы захотите пройти введение в DOJO Toolkit .

Struts 2 поставляется с мощным набором API-интерфейсов Dojo AJAX, которые можно использовать для добавления поддержки Ajax. Чтобы добавить поддержку Ajax, вам нужно добавить следующий JAR-файл в ваш classpath:
struts2-dojo-plugin.jar

Также, как только мы добавим этот JAR-файл, нам нужно добавить следующий фрагмент кода в любой JSP-файл, в котором мы хотим добавить поддержку AJAX.

<%@ taglib prefix="sx" uri="/struts-dojo-tags"%>

Сначала определите taglib sx, который мы будем использовать для добавления тегов с поддержкой AJAX.

<sx:head/>

Добавьте этот тег head в свой JSP между тегами <head>… </ head>. Этот тег sx: head будет включать необходимые файлы javascript и css для реализации Ajax.

Пример AJAX: раскрывающийся список Struts2 Ajax

Давайте добавим простую поддержку AJAX в наше веб-приложение StrutsHelloWorld. Мы будем использовать базовый код, который мы использовали в предыдущих статьях, и добавим Ajax поверх него.

Мы создадим выпадающий список, который будет автозаполнение и предложит ввод. Для этого мы добавим поддержку Dojo в наше веб-приложение.

Шаг 1: Добавление файла JAR

Как обсуждалось ранее, мы добавим struts2-dojo-plugin.jar в classpath (WEB-INF / lib). Таким образом, ниже приведен список необходимых файлов JAR. Обратите внимание, что эти jar-файлы необходимы для запуска полного приложения, включая все образцы предыдущих частей этой серии руководств.

Шаг 2. Создайте класс действий AJAX

Мы создадим класс действия, который будет вызван для нашего примера Ajax. Создайте файл AjaxAutocomplete.java в пакете net.viralpatel.struts2 и скопируйте в него следующее содержимое.
AjaxAutocomplete.java

package net.viralpatel.struts2;

import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;

import com.opensymphony.xwork2.ActionSupport;

public class AjaxAutocomplete extends ActionSupport {
private String data = "Afghanistan, Zimbabwe, India, United States, Germany, China";
private List<String> countries;
private String country;

public String execute() {
countries = new ArrayList<String>();
StringTokenizer st = new StringTokenizer(data, ",");

while (st.hasMoreTokens()) {
countries.add(st.nextToken().trim());
}
return SUCCESS;
}
public String getCountry() {
return this.country;
}

public List<String> getCountries() {
return countries;
}

public void setCountries(List<String> countries) {
this.countries = countries;
}
public void setCountry(String country) {
this.country = country;
}
}

В приведенном выше коде мы создали простой класс действий с атрибутом String country и List country. Список стран будет заполнен названиями стран при вызове метода execute (). Вот для этого примера мы загрузили статические данные. Вы можете смело изменять это и добавлять данные из базы данных.

Шаг 3: Создайте JSP

Создайте файл JSP для отображения текстового поля автозаполнения для нашего действия Ajax. Создайте AjaxDemo.jsp в каталоге WebContent.
AjaxDemo.jsp

<%@ page contentType="text/html; charset=UTF-8"%>

<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="sx" uri="/struts-dojo-tags"%>
<html>
<head>

<title>Welcome</title>
<sx:head />
</head>
<body>
<h2>Struts 2 Autocomplete (Drop down) Example!</h2>

Country:
<sx:autocompleter size="1" list="countries" name="country"></sx:autocompleter>
</action>
</body>

</html>

В приведенном выше JSP-файле мы использовали тег sx: autocompleter, чтобы отобразить выпадающий список автозаполнения, который использует пользовательский класс Ajax для внутреннего извлечения данных. Обратите внимание, что мы сопоставили атрибут списка со списком стран.

Шаг 4. Создание записи Struts.xml

Добавьте следующую запись действия в файл Struts.xml:

<action name="ajaxdemo" class="net.viralpatel.struts2.AjaxAutocomplete">

<interceptor-ref name="loggingStack"></interceptor-ref>
<result name="success" type="tiles">/ajaxdemo.tiles</result>
<result type="tiles">/ajaxdemo.tiles</result>

</action>

Обратите внимание, что мы используем плитки здесь в этом примере. Возможно, вы захотите использовать AjaxDemo.jsp вместо /ajaxdemo.tiles для визуализации вывода непосредственно в JSP.

Это все люди

Скомпилируйте и запустите приложение в Eclipse.

Скачать исходный код

Нажмите здесь, чтобы загрузить исходный код без файлов JAR (24 КБ)

Вывод

Struts2 Framework предоставляет широкий спектр возможностей для создания многофункционального веб-приложения. В этой серии Struts2 мы увидели различные аспекты Struts 2, такие как введение в Struts2 , приложение hello world , среда валидации , плагин плиток , перехватчики strurts2 , загрузка файлов и поддержка ajax.