想在项目中使用Spring MVC,研究了一下,感觉还是差一点点,可能是我研究得不够深入啦。
使用注解的Controller:
@Controller
@RequestMapping("/user") // 使用ControllerClassNameHandlerMapping,可以不写这一行,我喜欢!
public class UserController {
}
当一个Controller有多个方法时,如下:
@Controller
public class UserController {
@RequestMapping
public void index(HttpServletRequest request) {
}
@RequestMapping("/show") // 我是个懒人!RequestMapping的参数与方法名相同,能不能不写呢?
public User show(Long id) {
return manager.getUser(id);
}
}
另外,也想用REST,但对我这样的懒人来说还是不够简便。
@Controller
@RequestMapping("/user") // 去掉这一行,遇到了郁闷的400:The request sent by the client was syntactically incorrect
public class UserController {
@RequestMapping(method = RequestMethod.GET)
public List<Person> list() {
return manager.getUserList(); // 这里可以直接返回List,还是相当不错的。
}
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
public String show(@PathVariable("id") Long id, Model model) {
model.addAttribute(manager.getUser(id));
return "show"; // 能不能不返回View Name呢?直接return manager.getUser(id)多好,还可以少一个model参数
// 因为URL不能确定View Name,DefaultRequestToViewNameTranslator是搞不定的了,但其实返回的就是方法名嘛
}
}
最近二天才开始研究Spring MVC,但就是找不到怎样可以写更少的代码,郁闷
--------------------------------------------------------------------------------------------------------------
考虑到一个场景:弹出一个输入页面(新增或修改),有“保存”、“保存并关闭”、“关闭”等按钮,当用户点击“保存”时须将当前用户的输入保存到数据库,并且继续展现这条数据,以方便用户修改后再次“保存”,不确定用户何时会点“关闭”按钮(最好用JavaScript在客户端直接关闭,另外用户也可能点击浏览器的关闭)。
Struts2是类级别的拦截,实现ModelDriven接口之后,能够自动绑定用户在页面上的输入,在save方法中只需将对应的类变量保存到数据库,并且返回"input"字符串,就又回到输入页面,对应的类变量的值会重新展现在页面上,包括保存过程中自动生成的值(业务层可能生成最后修改时间等)。
Spring MVC可以在打开输入页面时将实体数据放在Session中,但却不清楚应该何时清除Session,因为不好确定用户何时关闭页面。
Spring MVC也可以在save方法中重新从数据库中取出实体数据(Struts2其实也是在ModelDriven的实现中取出来赋到类变量上),然后手工绑定用户在页面上的输入数据,然后保存回数据库,再将此实体数据返回给VIEW展现。这样Spring MVC其实和Struts2在原理上差不多,只不过Spring MVC需要手工绑定,并且从数据库中取出实体的代码需要写多次(可以归纳到一个方法中,但少不了对这个方法的显式调用);Struts2需要为每一个请求创建一个对象,效率差一些,却优雅一些。
但很多系统都没有这里提到的需求,也就不用考虑这一点。没有什么需求是某项技术一定不能实现的,只是效率、性能和优雅程度等不同,这就需要做出权衡。
分享到:
相关推荐
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。Spring MVC4是当前zuixin的版本,在众多特性上有了进一步的提升。, 在精通Spring...
要想灵活运用 Spring MVC 来应对大多数的 Web 开发,就必须要掌握它的配置及原理。 一、Spring MVC 环境搭建 1. jar 包引入 在使用 Spring MVC 之前,需要引入相应的 jar 包,包括 Spring 2.5.6 和 Hibernate ...
精通Spring MVC 4 中文
spring mvc 开发jar包
spring MVC数据绑定 含例子 转载自疯芒毕露的专栏 刚开始用spring mvc 做web开发时 经常会不知道如何合适绑定页面数据 用惯struts2的朋友更认为spring mvc 绑定数据不如struts2方便 本人最开始也是这么认为 经过一段...
使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还可以是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、...
spring mvc4.1.4 源代码 spring mvc4.1.4 源代码spring mvc4.1.4 源代码spring mvc4.1.4 源代码spring mvc4.1.4 源代码
这篇文章将教你快速地上手使用 Spring 框架. 如果你手上有一本《Spring in Action》, 那么你最好从第三部分"Spring 在 Web 层的应用--建立 Web 层"开始看, 否则那将是一场恶梦! 首先, 我需要在你心里建立起 Spring...
Spring MVC是Spring框架中用于Web应用快速开发的一个模块,其中的MVC是Model-View-Controller的缩写。作为当今业界最主流的Web开发框架,Spring MVC已经成为当前最热门的开发技能,同时也广泛用于桌面开发领域。 ...
它以强大的Spring IoC容器为基础,并充分利用容器的特性来简化它的配置。 commons-logging-1.2.jar jackson-annotations-2.6.6.jar jackson-core-2.6.6.jar jackson-databind-2.6.6.jar jakarta-taglibs-standard-...
Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于...
spring mvc
spring mvc最小代码。spring mvc最小代码。spring mvc最小代码。spring mvc最小代码。
关于构建Sping MVC的Jar包,包括Sping2.5.6和Hibernate3.6.8
Spring mvc jar包
可以了解spring mvc的开发环境,以及注解使用,对理解spring mvc的工作原理有直观的帮助。
Spring MVC是Spring框架中用于Web应用快速开发的一个模块,其中的MVC是Model-View-...本书是一本Spring MVC的教程,内容细致、讲解清晰,非常适合Web开发者和想要使用Spring MVC开发基于Java的Web应用的读者阅读