В этой статье в основном изучается подробное объяснение радиопроизводительных кнопок структуры Struts2 и связанных примеров преобразования типов перечисления, следующим образом.
Используя теги Struts2, нет сомнений, что вам нужно сначала представить библиотеку тегов:
<%@ taglib prefix = "s" uri = "/struts-tags"%>
Предположим, что значение списка в радио -поле - это коллекция карт:
<S: Radio List = "#{'Man': 'Male', 'women': 'nember'}" name = "gende" listkey = "key" listValue = "value" value = "" man '"theme =" simple "/> Примечание:
1. Атрибут имени также является атрибутом имени, соответствующим коду HTML.
2. Атрибут ListKey соответствует атрибуту значения кода HTML.
3. Атрибут ListValue соответствует атрибуту метки кода HTML.
4. Атрибут значения относится к: когда значение значения соответствует значению в наборе, оно выбрано (если значение значения - это строка, вам необходимо добавить отдельные кавычки).
После выполнения он будет проанализирован в HTML -код, как показано на рисунке:
Давайте объясним это в случае:
При изменении пользователя перейдите к интерфейсу модификации и повторяйте пол пользователя в интерфейсе модификации. Здесь мы используем перечисление для представления пол.
Начальный пользовательский интерфейс:
Структура проекта:
пользовательский интерфейс:
<body> <form action="enumAction_test.action" method="post"> Please select gender: <s:radio list="#{'MAN':'Male','WOMEN':'Female'}" name="gender" listKey="key" listValue="value" value="'MAN'" theme="simple"/> <input type="submit" value="submit"> </form> </body>Фоновое код действия:
Общедоступный класс umumaction {/*определить пол, по умолчанию мужчина*/частный гендерный пол = гендер.man; public gendgender () {return Gender;} public void setgender (гендерный пол) {this.gender = пол;}/*Метод теста*/public String () {return ";}} ПРИМЕЧАНИЕ. Поскольку мы используем типы enum, нам нужно выполнить преобразование типа (конкретный метод преобразования был упомянут в предыдущем блоге).
Перечислять код класса преобразования типа:
открытый класс EnumTyPeconverter Extends DefaultTyPeconverter {@SuppressWarnings ("ravtypes") @Override public Object convertValue (map <string, объект> контекст, значение объекта, класс Totype) {/*преобразовать с фронта в бэкэнд, от строки к enum type*/if (totype == gender.class) {/* Params = (string []) value; return gend.valueof (params [0]);} else if (totype == string.class) {/*передает из фонового действия на передний план, то есть преобразование гендерного типа в тип строки*//*плотно преобразование значения в гендер*/гендерный пол = (гендер);Определите файл свойств для преобразования глобального типа:
com.lixue.bean.gender = com.lixue.converter.enumtypeconverter
Страница результата после прыжка (интерфейс модификации пользователя):
<body> Ваш пол: <S: Radio List = "#{'' Man ':' Male ',' women ':' nefic '}" name = "gende" listKey = "key" listValue = "value" value = "gender" theme = "simple"/> </body>Примечание. Как повторить в настоящее время выбранное пол в интерфейсе модификации? Ключ - посмотреть на значение значения. Я написал пол в приведенном выше коде. Фактически, этот пол является собственностью, определенным в действии. Когда мы говорили об Ognl в предыдущей статье, мы сказали, что свойства в действии будут сохранены в стеке стоимости. Мы принимаем свойства в стеке значений и можем быть получены непосредственно через имя атрибута, не получая их через форму #Namespace. После получения его, сопоставьте его с предыдущей коллекцией карт, чтобы определить, проверить ли ее.
1. У некоторых людей могут быть вопросы, почему ListKey может быть написан непосредственно на ключе, а ListValue будет написана непосредственно на значении.
Ответ: Когда Struts2 анализирует коллекцию списков в теге <S: Radio>, он использует итератор. Функция итератора состоит в том, чтобы сохранить результат (каждый раз, когда вход объект) в верхней части стека стека значений каждый раз, когда цикл должен получить значение. Следовательно, при использовании выражения ognl вы можете напрямую использовать атрибут объекта (имена атрибутов записи являются именами ключа и значения), чтобы получить значение. Нет необходимости использовать пространство # имен. Студенты, которые не понимают выражения ognl, могут прочитать предыдущую статью.
2. Мы обнаружим, что при написании тегов мы всегда пишем тему атрибута. Функция этого атрибута состоит в том, чтобы избежать генерации Struts2, создавая какой -то ненужный код при диаграмме, но необходимо писать его каждый раз. Разве это не афера? Фактически, мы можем настроить константу в файле struts.xml для достижения эффекта:
<!-struts2 тега стиль темы-> <constant name = "struts.ui.theme" value = "simple" />
Изучение этих рамках стойки совсем похоже на то, чтобы увидеть голубое небо через облака и туман. У меня есть более четкое понимание фреймворков Java, Spring, Mybatis и т. Д., И все связано. Полем Полем
Выше приведено все содержимое этой статьи о подробном объяснении радиобатги Struts2 и примере кода преобразования типа перечисления. Я надеюсь, что это будет полезно для всех. Заинтересованные друзья могут продолжать ссылаться на другие связанные темы на этом сайте. Если есть какие -либо недостатки, пожалуйста, оставьте сообщение, чтобы указать это. Спасибо, друзья, за вашу поддержку на этом сайте!