我正在尝试从Boostrap模式中的表单发布。
这是我的形式:
<form role="form" id="emailForm" action="#" th:action="@{/emailSubmission}" th:object="${university}" method="post">
<div class="form-group">
<label for="emailID"><span class="glyphicon glyphicon-user"></span> Username</label>
<input type="text" class="form-control" id="emailID" th:value="*{email}" placeholder="Enter email"></input>
</div>
<button type="submit" value="Submit" id="submitButton" class="btn btn-default btn-success btn-block" ><span class="glyphicon glyphicon-check"></span> Register</button>
</form>
这是我的控制器:
@Controller
public class RegistrationController {
@RequestMapping(value = "/emailSubmission", method = RequestMethod.POST)
public String registerEmail(@ModelAttribute("university") University uni, BindingResult result, Model model)
{
System.out.println(uni.getEmail());
return "index";
}
}
和我的大学课:
public class University {
private String email;
public University(){
}
public String getEmail(){
return email;
}
public void setEmail(String email){
this.email = email;
}
}
我是春天的新手,无法弄清楚什么问题以及为什么我会收到标题中提到的错误。
更改:
th:value="*{email}"
to:
th:field="*{email}"
给我'bentingResult和bean name'University'的bindingresult和普通目标对象,请求属性'错误。
您必须将大学对象作为属性添加到控制器中的模型:
@GetMapping(value = "/index")
public String login(Model model) {
model.addAttribute("university", new University());
return "index";
}
这是我为您提供的,希望它会有所帮助。如果您不明白,请告诉我一个晚安。
target.request(MediaType.APPLICATION_JSON)
.post(Entity.json(Json.createObjectBuilder()
.add("attribute1", "value1")
.add("attribute2", "value2")
.build()));
或者如果您喜欢:
MultivaluedMap<String, String> map = new MultivaluedHashMap<>();
map.add("attribute1", "value1");
map.add("attribute2", "value2");
target.request(MediaType.APPLICATION_FORM_URLENCODED)
.post(Entity.form(map));
现在我该怎么办?
@POST
public Response post(JsonObject json) {
return Response.ok(service.persist(MyFactory.create(json.getString("attribute1"), json.getString("attribute2"))).build();
}
或当然如果您喜欢:
@POST
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public Response post(@FormParam("attribute1") String attribute1, @FormParam("attribute2") String attribute2) {
return Response.ok(service.persist(MyFactory.create(attribute1, attribute2))).build();
}