我有一个使用表单的spring webapp:select tag。标签如下:
<div class="mobile-show desktop-hide">
<span>Here is my product list</span>
<ul>
<li>Item number 1</li>
<li>Item number 2<li>
</ul>
<div>
<div class="desktop-show mobile-hide">
<h1>Here is my product list</h1>
<div class="icon-block">
<img src="icon1"></img>
<img src="icon2"></img>
</div>
</div>
<c:forEach items="${info.formAreas}" var="area">
<div class="area">
<form:label path="areas">${area.name}</form:label>
<form:select id="form_area_${area.id}" items="${area.options}" path="areas" class="area_select"/>
</div>
</c:forEach>
在我的表单绑定对象上是areas
,而String[]
是${info.formAreas}
的列表,转载如下:
AreaDTO
生成的HTML如下:
public class AreaDTO {
private int id;
private String name;
private String shortName;
private boolean dontmind;
public Map<String,String> getOptions() {
Map<String,String> options = new LinkedHashMap<String,String>();
options.put(id+":0", "No");
if (dontmind) options.put(id+":1", "Don't Mind");
options.put(id+":2", "Yes");
return options;
}
//other getters/setters
}
首先,为什么它会产生<div class="area">
<label for="areas">An Area Name</label>
<select id="form_area_1" name="areas" class="area_select" multiple="multiple">
<option value="1:0" selected="selected">No</option>
<option value="1:1">Don't Mind</option>
<option value="1:2">Yes</option>
</select>
<input type="hidden" name="_areas" value="1"/>
</div>
,我只想要一个选择下拉列表,其次,隐藏输入来自哪里?
答案 0 :(得分:2)
是否获得单选或多选取决于用于保存所选内容的变量的类型(path
- 变量)。如果这是某些类型的集合(例如List
),它将成为多选。
隐藏的输入字段可能只是Spring
内部使用的内容,可能用于在未选择任何内容时发布一些值。