在 null 上找不到属性或字段'email'



我正在尝试从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();
}

最新更新