如何将javascript变量传递给Spring MVC控制器


问题内容

谁能告诉我如何在Spring MVC Controller中获取javascript变量值。

var countrySelection = "Country Selection List:\n\n";
       for (var i = 0; i < frm.selectedCountryItems.length; i++)
          if (frm.selectedCountryItems[i].checked){
              countrySelection = countrySelection + frm.selectedCountryItems[i].value + "\n";
          }

       alert(countrySelection);

我想将值countrySelection传递给控制器


问题答案:

您需要将此变量作为参数从发布/获取请求传递到控制器,并在控制器中进行访问,例如:

@RequestMapping(...)
public String getCountySelected(@RequestParam(value = "UR_PARAM_NAME") String param){
   ... code goes here
}

编辑: 如果您不使用ajax,并且要在表单提交时发送额外的参数:

在带有@Transient注释的表单域类中添加变量,以使spring不会在数据库表中查找匹配的元素。

例如

@Transient
private String countrySelection;
//Setter getter methods

然后在jsp中添加表单隐藏变量,例如:

<form:hidden path="countrySelection"/>

然后$("#countrySelection").value(countrySelection);使用您的jquery 进行设置。

在控制器中,您可以使用对象getter方法访问此字符串。