Уровень представления Apache Struts Framework Библиотека тэгов

advertisement
Уровень представления
Apache Struts Framework
Библиотека тэгов
Наиболее используемые тэги
html:form
html:img
html:image
html:errors
html:link
html:multibox
html:radio
html:checkbox
html:text
html:select
html:options
bean:write
bean:define
logic:iterator
logic:match
logic:equal
logic:notEqual
Nested versions of all
these tags
tiles:insert
tiles:put
Общие тэги используемые без контекста формы
Define
Links
Images
Write
Message
Iterator
Nested Tags
Bean:Define
Используется для
получения доступа к объекту формы
удобства работы с множеством вложенных свойств
НЕ создает экземпляр объекта
тэг всего лишь предоставляет доступ к бину в указанной
области видимости
Пример:
<bean:define id=“empList“
name=“selectEmployeesForm“
property=“employeeList“
type="java.util.Collection"/>
Объявление ссылки c именем empList на свойство
employeeList бина-формы selectEmployeesForm
Collection empList = selectEmployeesForm.getEmployeeList();
Ссылки (links)
Использование global-forward конфигурации
<html:link forward=“Home”>
Текстовая ссылка
<html:link forward=“Home">Home Page</html:link>
Ссылка HTML – HREF
<html:link href=“/index.html”>
Ссылка с использованием JavaScript
<html:link href=“javascript:history.back(1)”>Back </html:link>
Image Link
<html:link page="/viewReport.do">
<html:img src="/images/emp_button_view_report.gif" />
</html:link>
Параметризированные ссылки
Ссылка может иметь параметр значение для которого берется
из бина:
<html:link page="/viewReport.do" paramId="model“
paramName="viewModelForm" paramProperty="model">
<html:img src="/images/emp_button_view_report.gif" />
</html:link>
Будет создана ссылка-картинка на:
/viewReport.do?model=<%=viewModelForm.getModel() %>
Возможная ссылка:
/viewReport.do?model=detail
Картинки (image)
Существует два тэга для вывода картинок
html:img
Используются для обычных картинок
Используются совместно с ссылками
Пример:
<html:link page="/viewReport.do">
<html:img src="/images/emp_button_view_report.gif" />
</html:link>
или просто
<html:img src="/images/emp_button_view_report.gif" />
html:image
Используется в форме как кнопка SUBMIT
Обязательно наличие struts формы
<html:form action=“/action.do”>
<html:image src="/images/emp_button_view_report.gif" />
</html:form>
Bean:write
Используется для получения свойств:
Формы-бина
Определенной переменной скрипта (bean:define)
Пример
<bean:write name=“modelForm” property=“clientName”/>
Если ссылка указывает на простой объект например String то
property можно не указывать
<bean:write name=“id”/>
Вывод HTML кода
<bean:write name=“myBean” property=“htmlText” filter="false"/>
Bean:message
Используется для вывода значений свойств из файла
ресурсов
Интернационализация сообщений приложения
Пример:
<bean:message key=“ user.message”/>
Logic:iterate
Используется для перебора (аналогично JSTL – c:forEach)
Коллекций
Массивов
Все тэги включенные в тело тэга <logic:iterate> выполняются
для каждого элемента коллекции
Пример:
<logic:iterate id=“employeesForm” name=“company”
property=“employees”>
<bean:write name=“employeesForm” />
</logic:iterate>
Если атрибут name неуказан то подразумевается перебор
коллекции формы указанного в атрибуте id. Форма должна
быть объявлена в конфигурации Struts
Работа с формой struts
Struts Forms
Submit Buttons
Text Input
Combo Boxes
Radio
Checkbox
Multi-Box
Tables
HTML Select
HTML тэг для вывода выпадающего списка
<select name="employees">
<option value="101" selected="selected">Ken</option>
<option value=“102”>Tammy</option>
<option >Amanda</option>
</select>
Пояснение к примеру
Имя свойства формы employees
Значение по умолчанию Ken
В списке есть опции Ken, Tammy и Amanda
Значение Tammy – 102
Значение Amanda – Amanda
Combo Box
Используется для создания выпадающего списка
<html:select property=“employee”>
<html:options name=“options" />
</html:select>
Этот тэг выполняет следующее:
On JSP forward
Получает значение формы с помощью getEmployee()
Создаёт тэг HTML select c элементами коллекции getOptions()
Если есть опция соответствующая свойству employee, то это
значение будет использовано, как «значение по умолчанию»
списка
On SUBMIT
Получает значение выбранной опции
Устанавливает значение свойства формы c помощью setEmployee
Опции для выпадающего списка
Указание «вручную»
Struts
HTML
Массив Strings
Коллекция
Пример указания опции списка вручную
<html:select property=“employee”>
<html:option value=“101”>Ken</html:option>
<html:option value=“102”> Tammy</html:option>
<html:option value=“Amanda” />
</html:select>
Опции в строковом массиве
В примере employeeList представляет собой свойство формы
которое возвращает массив String
Каждый элемент массива является как именем так и
значением списка
<html:select property=“employee”>
<html:options name=“employeeList” />
</html:select>
Коллекция объектов для опций списка
Пример:
<html:select property=“employee”>
<html:options collection=“employeeList” property=“employeeID”
labelProperty=“name” />
</html:select>
collection – свойство формы – коллекция элементов
property – свойство объекта в коллекции – используется как
значение элемента списка
labelProperty – свойство объекта в коллекции – используется
как текст элемента списка
Объект коллекции из примера
public class Employee {
private String name;
private String employeeID;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmployeeID() {
return employeeID;
}
public void setEmployeeID(String employeeID)
this.employeeID = employeeID;
}
}
{
Radio Button
<html:radio property=“status” value=“Full Time” />
<html:radio property=“status” value=“Part Time” />
Используется для создания элемента формы типа
«переключатель» (селективная кнопка)
Тэг выполняет следующие действия:
On JSP forward
Получает значение формы с помощью getStatus()
Создаёт HTML тэг переключателя
Устанавливает значение по умолчанию такое же как и значение
свойства status
On Submit
Получает значение переключателя
Устанавливает значение свойства status
<input type=“radio” name=“status” value=“Full Time” >Full Time</input>
<input type=“radio” name=“status” value=“Part Time” > Part Time</input>
Check Box
<html:checkbox property=“isUSCitizen” value=“wasUSCitizen” />
Пример демонстрирует создание элемента Check Box
Значение берется из свойства формы isUSCitizen
Property должно иметь типо Boolean
value – необязательный атрибут для установки значения по
умолчанию
Тэг выполняет следующие действия:
On JSP forward
Получает значение свойства формы wasUSCitizen
Создает HTML тэг check box c именем isUSCitizen
Значение по умолчанию устанавливается в соответствии с
wasUSCitizen
On Submit
Получает значение check box
Устанавливает значение формы isUSCitizen
Multibox
Как правило необходимо иметь множество элементов check
box на странице
Тэг оперирует строковыми массивами (НЕ BOOLEAN!)
Тэг обычно используется внутри тэга <logic:iterator>
Пример
<html:multibox property="benefits">401K</html:multibox>401K
<html:multibox property="benefits">Health</html:multibox>Health
<html:multibox property="benefits">Dental</html:multibox>Dental
Свойство benefits строковой массив
Каждый элемент массива будет benefits отображен как
«checked»
Каждый элемент массива benefits будет использован в
качестве значения по умолчанию
<input type="checkbox" name=" benefits" value="401K">401K
<input type="checkbox" name=" benefits" value=“Health">Health
<input type="checkbox" name=" benefits" value=“Dental">Dental
Multi-Box Example
<logic:iterate id=“employee" property=“employees">
<html:multibox property=“selectedEmployees">
<bean:write name=“employee“ property=“employeeID”/>
</html:multibox>
<bean:write name=“employee“ property=“name”/>
</logic:iterate>
Используется объект приведенный в примере Combo Box
Тэг Iterate обходит все элементы формы доступные из
свойства getEmployees()
Каждый элемент ссылается на свойство “employee”
Будет создан check box для каждого элемента
Value = employeeID
Text = name
Download