SpringMvc的自动注入与Struts2的区别
2016-04-19 12:12
246 查看
项目中难免使用到传值,从前台form表单传到后台控制层,还记得刚开始学习的时候使用的方法吗,在表单添加name,然后再后台通过request.getParament获取的方式,这当然是可以的,但是这样难免有点麻烦,毕竟要考虑表单数据的变动和后期的维护,加入真的要增加一个字段,最好的方式是通过angular.js或者Vue.js框架来维护,毕竟让现实和数据脱离可以减低页面的耦合,修改的时候也简单容易。小项目中可以在表单中直接改写name。
说到用框架,可以解决这样的麻烦,比如在前台name给个和后台model层对应的字段,可以很轻松的拿到前台的值,框架提供的自动注入减少了人工手写出错的可能性。
如果使用struts框架:假如后台有一个这样的Bean
struts的框架action层
public myAction implements Action{
如果使用SpringMVC框架:和struts差不多
/*-------------------处理用户表单--------------------*/
@RequestMapping(value="uploadtext",produces = "text/html;charset=UTF-8")
@ResponseBody
public String updateInf(Student student,HttpServletRequest request,Model model){
//student直接作为形参,这样可以直接使用student,还可以免去setter,getter更方便
return null;
}他们的不同点就是SpringMVC的前端form的name字段直接使用对象的属性值,比如:改成这样
<form>
<input type="text" name="name"/>
</form>
那么也许你会觉得,假如name冲突怎么办?
对这个问题是存在的,但是form表单通常不会那样写,标准的做法是后台用一个Bean来接受前台的数据,而不是使用如string这样的类型。毕竟,这也是面向对象思想的一部分体现!
说到用框架,可以解决这样的麻烦,比如在前台name给个和后台model层对应的字段,可以很轻松的拿到前台的值,框架提供的自动注入减少了人工手写出错的可能性。
如果使用struts框架:假如后台有一个这样的Bean
class Student{ private String name; //..getter setter }前台表单
<form> <input type="text" name="student.name"/> </form>
struts的框架action层
public myAction implements Action{
<span style="white-space:pre"> </span>private Student student;//这样就可以获取到前台的数据,还行
<span style="white-space:pre"> </span>//others<span style="white-space:pre"> </span>
}
如果使用SpringMVC框架:和struts差不多
/*-------------------处理用户表单--------------------*/
@RequestMapping(value="uploadtext",produces = "text/html;charset=UTF-8")
@ResponseBody
public String updateInf(Student student,HttpServletRequest request,Model model){
//student直接作为形参,这样可以直接使用student,还可以免去setter,getter更方便
return null;
}他们的不同点就是SpringMVC的前端form的name字段直接使用对象的属性值,比如:改成这样
<form>
<input type="text" name="name"/>
</form>
那么也许你会觉得,假如name冲突怎么办?
对这个问题是存在的,但是form表单通常不会那样写,标准的做法是后台用一个Bean来接受前台的数据,而不是使用如string这样的类型。毕竟,这也是面向对象思想的一部分体现!
相关文章推荐
- html5 web数据存储
- SEO
- 异步流程控制:7 行代码学会 co 模块
- [译] React 入门
- 如何优雅处理前端异常?
- 在线用表单建立文件夹
- Jquery 表单取值赋值的一些基本操作
- javascript 表单的友好用户体现
- js 提交和设置表单的值
- 攻克CakePHP系列二 表单数据显示
- .net中前台javascript与后台c#函数相互调用问题
- js创建jsonArray传输至后台及后台全面解析
- JavaScript获取页面中表单(form)数量的方法
- 网页中表单按回车就自动提交的问题的解决方案
- 分享纯手写漂亮的表单验证
- 超实用的JavaScript表单代码段
- 深入探讨前端框架react
- js实现不提交表单获取单选按钮值的方法
- js实现文件上传表单域美化特效