正如标题所说,我想将一个变量从控制器传递给成功的ajax调用函数,但它可能吗?例如:
我有一个带有这样一个控制器的Java类:
@RequestMapping(value = "checkFruit", method = RequestMethod.POST)
@ResponseBody
public ModelAndView checkFruit(HttpServletRequest request, String fruitInput) {
ModelAndView modelAndView = new ModelAndView();
if (fruitInput.equals("apple")) {
modelAndView.addObject("fruitType", 1); //This is what I want to pass to the success ajax call.
} else if (fruitInput.equals("orange") {
modelAndView.addObject("fruitType", 2); //This is what I want to pass to the success ajax call.
}
modelAndView.setViewName("fruitGarden");
return modelAndView;
}
带有ajax调用的jsp视图如下:
$("#checkFruitBtn").click(function () {
var fruitInput = $("input[name=fruitInput]").val();
$.ajax({
type: 'POST',
url: 'checkFruit',
data: 'fruitInput=' + fruitInput,
success: function () {
var fruitType= ${fruitType}; //I want to get the attribule of that "fruitType" variable set in the controller. But this is where things went wrong.
if (fruitType == 1) {
alert("This is an apple.");
} else if (fruitType == 2) {
alert("This is an orange.");
}
window.location.href = "/someURL";
}
});
});
在上面的例子中。当我点击按钮" checkFruitBtn"时,它会向控制器发送ajax调用" checkFruit"。在这个控制器中,我将设置一个变量" fruitType"将它发送给成功的ajax调用函数。在这个成功的ajax调用函数中,我将获得" fruitType"的值。变量检查它并根据其值显示警告信息......但是,事情并没有按计划进行。
我的问题是,是否有可能获得该值" fruitType"变量?我已经搜索了一种获取方法,但我仍然无法找到适合我的方法。如果以前曾问过这个问题,我非常抱歉。
提前致谢!
答案 0 :(得分:0)
使用注释@ResponseBody,Springmvc使用HttpMessageConverter将返回的对象转换为响应主体。
ModelAndView通常涉及命令对象和视图名称。
因此您可以将ModelAndView与Jsp页面一起使用,然后使用el来评估命令对象值。要使用@ResponseBody,Springmvc只返回字符串。
答案 1 :(得分:0)
$.ajax({
type: 'POST',
url: password_url,
data: '',
dataType: 'json',
success: function(response){
var g = response;
var x= g.fruitType; //Now you can do the operation based on the output.