Spring表单:select JSP标签总是使用多个

时间:2016-02-22 14:33:15

标签: spring jsp

我有一个使用表单的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&#39;t Mind</option> <option value="1:2">Yes</option> </select> <input type="hidden" name="_areas" value="1"/> </div> ,我只想要一个选择下拉列表,其次,隐藏输入来自哪里?

1 个答案:

答案 0 :(得分:2)

是否获得单选或多选取决于用于保存所选内容的变量的类型(path - 变量)。如果这是某些类型的集合(例如List),它将成为多选。

隐藏的输入字段可能只是Spring内部使用的内容,可能用于在未选择任何内容时发布一些值。