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
に変更すると正しく動作しますが、のURLが表示されるように、@PathVariable
と動作させます。
問題はどこにありますか。どのように修正する必要がありますか?
_「と、あなたのAJAXリクエストでデータを渡さない」あなたは何を意味しますか_? – zeroflagL
これは、jquery ajax呼び出しでデータを使用しないことを意味します。あなたのケースでは、{name:$( '#username')。val()}を渡さないでください。 –