我有
Class Shape {
//Implementation
}
Class Round extends Shape{
//Implementation
}
调节器
我有
@Requestmapping(value="/view/form")
public ModelAndView getForm(){
ModelAndView mav=new ModelAndView();
mav.addObject("shape",new Round());
}
@RequestMapping(value="/submit",method = RequestMethod.POST)
public ModelAndView submitForm(@ModelAttribute("shape") Shape shape){
if(shape instanceof Round){ //**Not giving positive result**
}
}
在Jsp
当我用Round对象提交表单时.在控制器端,ModelAttribute没有给出Round的实例.它只给出形状的例子.这该怎么做
最佳答案
你不能做这个.因为这是两个不同的请求生命周期.
@Requestmapping(value="/view/form")
public ModelAndView getForm(){
ModelAndView mav=new ModelAndView();
mav.addObject("shape",new Round());
}
当执行上述请求时,即使您在mav中添加了Round对象,它也已转换为html响应并发送回客户端.
因此,当您提交表单时接下来请求时,它是一个完全独立的请求,并且spring无法识别为先前的请求添加了哪个对象类型.
@RequestMapping(value="/submit",method = RequestMethod.POST)
public ModelAndView submitForm(@ModelAttribute("shape") Shape shape){
if(shape instanceof Round){ //**Not giving positive result**
}
}
但是你可以尝试探索@SessionAttributes,使用它可以在不同的请求中维护相同的对象
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。