Spring   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了java – 如何以spring形式绑定子类对象提交为modelAttribute大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我有

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中@L_262_4@了Round对象,它也已转换为html响应并发送回客户端.

因此,当您提交表单时接下来请求时,它是一个完全独立的请求,并且spring无法识别为先前的请求@L_262_4@了哪个对象类型.

@requestMapping(value="/submit",method = requestMethod.POST)    
public ModelAndView submitForm(@modelattribute("shape") Shape shapE){
         if(shape instanceof Round){ //**Not giving positive result**

         }
    }

但是你可以尝试探索@SessionAttributes,使用它可以在不同的请求中维护相同的对象

大佬总结

以上是大佬教程为你收集整理的java – 如何以spring形式绑定子类对象提交为modelAttribute全部内容,希望文章能够帮你解决java – 如何以spring形式绑定子类对象提交为modelAttribute所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。