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()} –