【问题标题】:How to bind multiple dropdown to model - spring mvc如何将多个下拉列表绑定到模型 - spring mvc
【发布时间】:2012-12-06 20:34:24
【问题描述】:

JSP

<select name="requirements"  style="width:150px;" id="requirements1">
                                        <option selected="selected" value="o Special Assistance">No Special Assistance</option>
                                        <option value="Assistance climbing steps">Assistance climbing steps</option>
                                        <option value="Assistance within the plane">Assistance within the plane</option>
                                        <option value="Blind passenger">Blind passenger</option>
                                        <option value="Hearing impaired">Hearing impaired</option>
                                        <option value="Wheelchair within terminal">Wheelchair within terminal</option>
                                    </select>
<select name="requirements"  style="width:150px;" id="requirements2">
                                        <option selected="selected" value="o Special Assistance">No Special Assistance</option>
                                        <option value="Assistance climbing steps">Assistance climbing steps</option>
                                        <option value="Assistance within the plane">Assistance within the plane</option>
                                        <option value="Blind passenger">Blind passenger</option>
                                        <option value="Hearing impaired">Hearing impaired</option>
                                        <option value="Wheelchair within terminal">Wheelchair within terminal</option>
                                    </select><input type="text" name="specialrequest" id="specialrequest1" />
        </form>

public class PassengerDetailDTO {

    private String[] requirements;
    private String specialrequest;
}

在控制器中

@RequestMapping(value = "/manualbooking.htm", method = RequestMethod.POST)
    public String doManualBooking(HttpServletRequest httpServletRequest,
            PassengerDetailDTO passengerDetailDTO,  ModelMap map) {
        LOGGER.info("Manual Booking Request");

        LOGGER.info(passengerDetailDTO.toString());

        return "manualbooking";
    }

当有多个下拉框时,提交表单后要求始终为空。如何解决?

【问题讨论】:

  • 是否定义了选择的数量(例如 2),或者这个数字是可变的?
  • 这很难管理,您可以查看this answer 以获得可能的解决方案。

标签: java spring-mvc


【解决方案1】:

确保您的 &lt;select&gt; 框名称代表数组 []。例如:

<select name="requirements[0]" ..>

<select name="requirements[1]" ..>

查看此演示:Spring MVC Multi Row Form

【讨论】:

    【解决方案2】:

    你可以添加 2 个不同的字符串字段到你的支持 bean,即

    private String requirement1;
    private String requirement2;
    

    然后使用类似于此的构造

     <form:select path="requirement1" multiple="false" id="requirement1">
        <form:options items="${yourRequirementsAsACollection}" />
     </form:select>
    
    
     <form:select path="requirement2" multiple="false" id="requirement2">
        <form:options items="${yourRequirementsAsACollection}" />
     </form:select>
    

    将选定的值分别写入第一个或第二个字段。

    另一方面,您可以使用多选框,在这种情况下,所有选定的值将在单个字段中以逗号分隔。

     private String requirements; // Ends up comma-separated, ie "req1, req2"
    
    
     <form:select path="requirements" multiple="true" id="requirements">
        <form:options items="${yourRequirementsAsACollection}" />
     </form:select>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-25
      • 2022-01-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多