Java Spring下拉列表填充

开发者

我在Spring MVC中工作,正在做一些jsp,在单个页面中显示多个下拉菜单...。

我看到了一个使用以下示例显示从数据库下拉列表的示例。

    <%@ page import="java.util.*" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <jsp:useBean id="state" scope="session" class="src.StateDAO"/>

    <html>
      <head>
      <title></title>
      </head>
      <body>
        <form id="test" method="POST" action="">
          <input name="state" type="radio" value="Australia" id="state-aus">Australia
          <input name="state" type="radio" value="NewZealand" id="state-new">NewZealand
          <input name="state" type="radio" value="India" id="state-oth"  >India
          <Select name="othStates" size="1" id="oth-states">
          <c:forEach items="${state.stateList}" var="st">
                <option value="1"><c:out value="${st.name}"/></option>
          </c:forEach>
          </select>
          <br>
          <input type="Submit" name="cmdSub" value="SUBMIT">
          <input type="Reset" name="cmdReset" value="RESET">
        </form>
      </body>
    </html>

这是使用Spring MVC在jsp中获取下拉菜单的正确方法吗?

叶夫根尼·迪米特洛夫(Evgeni Dimitrov)

我认为一个更好的选择是对jsp使用spring标签

    <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
...
    <form:select path="country">
        <form:option value="NONE" label="--- Select ---" />
        <form:options items="${countryList}" />
    </form:select>

在此处查看完整的示例:http : //www.mkyong.com/spring-mvc/spring-mvc-dropdown-box-example/

编辑:

$('#stateSelect').change(function() {
    $.ajax({
        type:"GET",
        url : "/getCitiesForState",
        data : { state: $('#stateSelect').val()},
        success : function(data) {
            $('#citySelect').empty(); //remove all child nodes
            for(var i = 0; i < data.length; i++){
                var newOption = $('<option value=data[i].value>data[i].text</option>');
                $('#citySelect').append(newOption);
            }   
        },
        error: function() {
            alert('Error occured');
        }
    });
});

在服务器端,您需要一个终结点,该终结点在url(示例中为/ getCitiesForState)上作出响应,并返回具有值和文本属性的对象列表。

编辑(添加controlelr):

@Controller
public class HelloController{

   @RequestMapping("/getCitiesForState")
   @ResponseBody
   public List<City> printHello(@RequestParam long state) {
      List<City> cities = //get from the some repository by state
      return cities;
   }

}

public class City{
   private String value;
   private String text;
   //getters setters
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章