Java 为什么Google Protocol buffers消息不能在Spring MVC控制器中自动绑定?
我有一个标准的表单控制器来更新被持久化的google protocol buffers消息对象。对于表单,我将Message.Builder添加到ModelMap中,以便访问setter消息。但是,我在表单中更改的值不会自动绑定到生成器对象。我不明白为什么那不起作用。。。我确实在@SessionAttributes上看到了这个消息。下面是我的实现的摘要版本Java 为什么Google Protocol buffers消息不能在Spring MVC控制器中自动绑定?,java,spring-mvc,protocol-buffers,Java,Spring Mvc,Protocol Buffers,我有一个标准的表单控制器来更新被持久化的google protocol buffers消息对象。对于表单,我将Message.Builder添加到ModelMap中,以便访问setter消息。但是,我在表单中更改的值不会自动绑定到生成器对象。我不明白为什么那不起作用。。。我确实在@SessionAttributes上看到了这个消息。下面是我的实现的摘要版本 @RequestMapping(method = RequestMethod.GET) public String setup(ModelM
@RequestMapping(method = RequestMethod.GET)
public String setup(ModelMap modelMap) {
Message.Builder builder = Message.Builder.newBuilder(serviceLayer.getMessage(someId));
modelMap.addAttribute("message", builder);
return "form";
}
@RequestMapping(method = RequestMethod.POST)
public String process(@ModelAttribute("message") Message message) {
serviceLayer.saveMessage(message.build());
return "done";
}
事实证明,嵌入getter方法的消息只返回一个不可变的对象,即使是从生成器返回。相反,我必须使用HttpServletRequest自下而上地重构消息 您能给我们看一下
@SessionAttributes
吗?@SessionAttributes(“消息”)。我可以在setup方法中设置一个值,并在process方法的调试程序中查看它。因此,我知道消息正确地通过会话传递。在我的表单中,我也使用了spring表单taglib。