Ich möchte in der Lage sein, den in der Textbox eingegebenen Wert per Mausklick an meinen AJAX-Controller zu übergeben.Passing PathVariable an AJAX-Controller
Controller-Code:
@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);
}
}
Relevante Ansicht Code:
$.getJSON("hello/", {name: $('#username').val()} , function(obj) {
$("ul").append("<li>"+obj.name+"</li>");
});
// ...
<input type="text" name="username" id="username" >
So funktioniert das nicht, wenn die Schaltfläche geklickt wird, geschieht nichts. Allerdings, wenn ich in meinem Controller zu @RequestParam
ändern, funktioniert es, aber ich will es mit @PathVariable
arbeiten, so dass die URL für die richtige username
angezeigt wird.
Wo ist das Problem, wie soll ich das beheben?
_ „und geben Daten nicht mit Ihren Ajax-Request“ _ Was meinen Sie damit? – zeroflagL
es bedeutet, verwenden Sie keine Daten: in Ihrem jquery Ajax Anruf. in Ihrem Fall nicht übergeben {name: $ ('# username'). val()} –