Весенняя форма: параметры заголовка из строки - PullRequest
0 голосов
/ 22 июня 2011

Довольно простой вопрос.Если у меня есть список строк, которые я отображаю в раскрывающемся списке в форме Springs: тег options, как мне установить значение свойства title равным значению строки?a forEach, но можно ли это сделать с помощью тега form: options?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 12 декабря 2013

Я предполагаю, что вы имеете в виду, что есть параметры itemLabel и itemValue, и что вы также хотели бы иметь параметр itemTitle, чтобы вы могли указать имя поля для объекта, который содержит строку дляатрибут title = "".

Так что по этой проблеме: https://jira.springsource.org/browse/SPR-7648

Если это так, я обнаружил, что мне нужно накатить собственное решение.Вот файл .tag, который я написал для этого:

<%@ tag language="java" pageEncoding="ISO-8859-1"%>
<%@ attribute name="items" type="java.util.Collection" required="true" %>
<%@ attribute name="itemLabel" type="java.lang.String" required="true" %>
<%@ attribute name="itemValue" type="java.lang.String" required="true" %>
<%@ attribute name="itemTitle" type="java.lang.String" required="true" %>
<%@ attribute name="selectedValue" type="java.lang.String" required="true" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<c:forEach var="entry" items="${items}">
    <c:set var="selectedAttrString" value="${entry[itemValue] == selectedValue ? 'selected=\"selected\"' : ''}" />
    <option value="${entry[itemValue]}" label="${entry[itemLabel]}" title="${entry[itemTitle]}" ${selectedAttrString} />
</c:forEach>

Я также включил возможность установки выбранного элемента.Я пропустил параметры, связанные с htmlEscape и css, потому что они мне не нужны, но вы можете легко добавить их при необходимости.

Примечание: классная часть заключается в том, что SPeL позволяет вам обращаться к имени поля, используя строку(очень похоже на Javascript), поэтому, если мы предположим, что itemValue = "id", то entry[itemValue] оценивается как entry.id.Понятно, эй?

Вы можете найти код, расположенный за формой: опциональный тег здесь: https://github.com/spring-projects/spring-framework/blob/master/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/form/OptionsTag.java

0 голосов
/ 20 апреля 2012

Вы просто опускаете атрибут 'title':

<form:options items="${listOfString}"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...