- 问题引入
我在jsp页面中使用了SpringMvc提供的表单标签,然后再访问该页面的时候出现了如下的错误
- 问题分析
根据报错信息,大概可以看出是说一个名称为"command"的bean的属性在request的域对象中不存在,这让我很纳闷,我根本就没有用到过"command"名称的属性,为啥会有这个问题呢?后来我分析我自己的代码,发现了问题的所在 - 代码探究
我的测试代码中,主要涉及到一个员工信息的新增页面input.jsp,如下
恰好报错的信息也是这几行,先说明一下,path中填写的属性,SpringMvc会自动从域对象中取出对应名称的值并填充到表单的指定位置,然后查看我的代码,发现lastName,email等这些属性属于Employee(员工实体类)的属性,并没有加入到域对象中,下图一是有错误的代码,图二是修改后无误的代码 - 图一
- 图二
- 最后一步,在界面中通过modelAttribute绑定上刚刚添加的employee属性
- 总结
SpringMvc要求,想要显示该页面的话,必须在域对象中存在于表单中path对应的属性,如果没有指定该属性,则默认从Request域对象中读取command的表单bean;如果该属性值也不存在,则会发生错误,同时需要通过modelAttribute属性指定绑定的模型属性
Neither BindingResult nor plain target object for bean name 'command' available as request attribute
最新推荐文章于 2021-11-13 21:09:26 发布