Добро пожаловать в последнюю часть из 7 статей серии руководств по Struts 2 Framework. В предыдущей статье мы увидели, как реализовать функцию загрузки файлов в Struts 2. В этой статье мы увидим, как мы можем реализовать поддержку Ajax в веб-приложении с использованием инфраструктуры Struts2.
Struts 2 Tutorial List
- Часть 1. Введение в Struts 2 Framework
- Часть 2. Создание приложения Hello World в Struts 2
- Часть 3: Руководство по проверке структуры Struts 2 с примером
- Часть 4: Руководство по плагину Struts 2 Tiles с примером
- Часть 5: Руководство по перехватчикам в Struts 2 с примером
- Часть 6: Пример загрузки файла Struts 2 и сохранения
- Часть 7: руководство по Struts 2 Ajax с примером
Поддержка 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.