基于单个表单中另一个表单的输入填充下拉列表,而不提交表单(SpringMVC+jsp)

基于单个表单中另一个表单的输入填充下拉列表,而不提交表单(SpringMVC+jsp),jsp,dynamic,spring-mvc,drop-down-menu,Jsp,Dynamic,Spring Mvc,Drop Down Menu,我有一个两个下拉表单:在一个.jsp文件中的单个表单中选择,我想根据第一个下拉列表的选择填充第二个下拉列表,但是问题是我无法提交表单,因为我已经有一个控制器映射,可以将表单值保存到DB。 我知道这可以用AJAX来完成。虽然我对AJAX不太熟悉,但我更喜欢后端开发。因此,我想找到一个暂时不使用AJAX的解决方案。 尽管这听起来像是一个愚蠢的问题,但任何指向起点的指示都是非常感谢的 与Danny的回复相对应的更新 我想我对建议的方法有问题 在客户端,使用JQuery,它使用POST从Spring M

我有一个两个下拉表单:在一个.jsp文件中的单个表单中选择,我想根据第一个下拉列表的选择填充第二个下拉列表,但是问题是我无法提交表单,因为我已经有一个控制器映射,可以将表单值保存到DB。 我知道这可以用AJAX来完成。虽然我对AJAX不太熟悉,但我更喜欢后端开发。因此,我想找到一个暂时不使用AJAX的解决方案。 尽管这听起来像是一个愚蠢的问题,但任何指向起点的指示都是非常感谢的

与Danny的回复相对应的更新

我想我对建议的方法有问题


在客户端,使用JQuery,它使用POST从Spring MVC控制器请求数据:

问题是我已经有了一个表单提交控制器mappingPOST,比如说/saveUser.htm

也许我会用一个例子来解释我的问题

这里我有两个下拉列表国家和省

<form:select path="country" cssClass="dropdown" >

<form:select path="province" cssClass="dropdown" >
不是

@RequestMapping(value = "/getOptions" method=RequestMethod.POST)
@ResponseBody
public String getOptionds(HttpServletResponse response) 
不过

问候,,
Carl

在客户端使用JQuery,它使用POST从Spring MVC控制器请求数据:

 $.post("/getOptions", function(options) {
     .each(options, function(val, text) {
            $('#mySelect').append(
                $('<option></option>').val(val).html(text)
            );
        });
 });
我可能会错过一些细节,但这是概念。
希望对您有所帮助。

在客户端使用JQuery,它使用POST从您的Spring MVC控制器请求数据:

 $.post("/getOptions", function(options) {
     .each(options, function(val, text) {
            $('#mySelect').append(
                $('<option></option>').val(val).html(text)
            );
        });
 });
我可能会错过一些细节,但这是概念。
希望这能有所帮助。

尝试以下方法:

$.ajax({
    type: "POST",
    url: "someUrl",
    dataType: "json",
    data: {
        varname1 : "varvalue1",
        varname2 : "varvalue2"
    },
    success: function (data) {
        $('#selectName').empty(); // empty existing list
        $('#selectName').append('<option value="">Some Label</option>');
        $.each(data, function (varvalue, vartext){
            $('#selectName').append($('<option></option>').val(varvalue).html(vartext));
        });  
    }
});
@RequestMapping设置为/someUrl的POST方法

@ResponseBody表示返回的字符串应用作数据

@RequestBody保存可选的url/数据参数,如下所示: varname1=varvalue1&varname2=varvalue2

您必须添加一些逻辑来创建包含第二个列表内容的JSON字符串,比如这样

{"selectId1":"selectValue1","selectId2":"selectValue2",..."selectId9":"selectValue9"}
然后,select将填充如下选项:

<option value="">Some Label</option>
<option value="selectId1">"selectValue1"</option>
<option value="selectId2">"selectValue2"</option>
...
<option value="selectId9">"selectValue9"</option>

试着这样做:

$.ajax({
    type: "POST",
    url: "someUrl",
    dataType: "json",
    data: {
        varname1 : "varvalue1",
        varname2 : "varvalue2"
    },
    success: function (data) {
        $('#selectName').empty(); // empty existing list
        $('#selectName').append('<option value="">Some Label</option>');
        $.each(data, function (varvalue, vartext){
            $('#selectName').append($('<option></option>').val(varvalue).html(vartext));
        });  
    }
});
@RequestMapping设置为/someUrl的POST方法

@ResponseBody表示返回的字符串应用作数据

@RequestBody保存可选的url/数据参数,如下所示: varname1=varvalue1&varname2=varvalue2

您必须添加一些逻辑来创建包含第二个列表内容的JSON字符串,比如这样

{"selectId1":"selectValue1","selectId2":"selectValue2",..."selectId9":"selectValue9"}
然后,select将填充如下选项:

<option value="">Some Label</option>
<option value="selectId1">"selectValue1"</option>
<option value="selectId2">"selectValue2"</option>
...
<option value="selectId9">"selectValue9"</option>