0
我希望能够通过点击鼠标将文本框中输入的值传递给我的AJAX控制器。将PathVariable传递给AJAX控制器
控制器代码:
@EnableWebMvc
@Controller
public class HelloWorldController {
public static class User {
private String name, surname;
int age;
public User(String name, String surname, int age) {
this.name = name;
this.surname = surname;
this.age = age;
}
public int getAge() {
return age;
}
public String getName() {
return name;
}
public String getSurname() {
return surname;
}
}
@RequestMapping("/hello")
public ModelAndView helloWorld() {
return new ModelAndView("home/hello.jsp", "message", "Spring MVC Demo");
}
@RequestMapping(value = "/hello/{name}", produces = "application/json")
public @ResponseBody User getUser(@PathVariable(value = "name") String name) {
return new User(name, "Surname", 25);
}
}
相关视图代码:
$.getJSON("hello/", {name: $('#username').val()} , function(obj) {
$("ul").append("<li>"+obj.name+"</li>");
});
// ...
<input type="text" name="username" id="username" >
所以这也不行,单击该按钮时,没有任何反应。但是,当我在我的控制器中更改为@RequestParam
时,它可以正常工作,但我希望它与@PathVariable
一起使用,以便显示正确的username
的URL。
问题在哪里,我该如何解决这个问题?
_“和不通过你的Ajax请求数据” _你是什么意思? – zeroflagL
这意味着不要使用数据:在你的jQuery Ajax调用中。在你的情况下不要通过{name:$('#username')。val()} –