かなり単純な質問です。Springs form:options タグを介してドロップダウンでレンダリングする文字列のリストがある場合、title プロパティの値を文字列値に設定するにはどうすればよいですか?
<form:options items="${listOfString}" title=" ?? "/>
または、forEach を実行しますが、form:options タグを使用して実行できますか?
ありがとう!
かなり単純な質問です。Springs form:options タグを介してドロップダウンでレンダリングする文字列のリストがある場合、title プロパティの値を文字列値に設定するにはどうすればよいですか?
<form:options items="${listOfString}" title=" ?? "/>
または、forEach を実行しますが、form:options タグを使用して実行できますか?
ありがとう!
「タイトル」属性を省略します。
<form:options items="${listOfString}"/>
itemLabel
およびitemValue
params があり、paramitemTitle
も必要であるため、文字列を含むオブジェクトのフィールド名を指定して 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 関連のパラメーターは必要なかったので省略しましたが、必要に応じて簡単に追加できます。
itemValue = "id"
注: 優れた点は、SPeL では文字列 (Javascript によく似ています) を使用してフィールド名を指定できることentry[itemValue]
ですentry.id
。きちんとねえ?
ここで form:options タグの背後にあるコードを見つけることができます: https://github.com/spring-projects/spring-framework/blob/master/spring-webmvc/src/main/java/org/springframework/web/サーブレット/タグ/フォーム/OptionsTag.java