想在项目中使用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 是一个基于Java的轻量级Web应用框架,它为开发者提供了模型-视图-控制器(MVC)架构,使开发人员能够更好地组织和分离应用程序的业务逻辑、数据处理和用户界面。Spring MVC是Spring框架的一个核心组件,...
此外,Spring MVC提供了ModelAndView类,它可以将处理结果(模型数据)和视图名组合在一起,方便返回给视图层进行渲染。`@ResponseBody`注解可以让方法的返回值直接写入HTTP响应体,常用于返回JSON或XML等格式的数据...
Spring MVC 是一款强大的Java Web开发...对于想要深入理解和使用Spring MVC的开发者来说,这是一份非常宝贵的资源。通过学习这个教程,你可以提高你的Web开发技能,更好地利用Spring MVC来构建高质量的Java Web应用。
在实际开发中,Spring MVC常常与Spring Data JPA或MyBatis等持久层框架结合使用,以方便数据库操作。此外,Spring MVC还能够与其他Spring模块(如Spring Security、Spring WebSocket等)无缝集成,提供完整的解决...
Spring MVC是Spring框架的一部分,它是一个用于构建Web应用程序的模型-视图-控制器(MVC)架构。在Spring MVC中,Controller负责处理HTTP请求,Model持有业务数据,而View则负责数据的展示。通过DispatcherServlet...
Spring MVC是一种基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,使用了IoC容器,支持RESTful风格的应用程序开发。Spring MVC通过分离模型(Model)、视图(View)和控制器(Controller)来简化Web开发...
Spring MVC是Spring框架的一个核心模块,专为构建Web应用程序而设计。它提供了模型-视图-控制器(MVC)架构,使开发者能够有效地分离业务逻辑、数据处理和用户界面。在"Spring MVC 4.2.3"版本中,我们看到了一系列的...
要想灵活运用 Spring MVC 来应对大多数的 Web 开发,就必须要掌握它的配置及原理。 一、Spring MVC 环境搭建 1. jar 包引入 在使用 Spring MVC 之前,需要引入相应的 jar 包,包括 Spring 2.5.6 和 Hibernate ...
Spring MVC 是一个基于 Java 的轻量级Web应用框架,它为构建模型-视图-控制器(MVC)架构的应用程序提供了强大的支持。在本压缩包中包含了一系列与Spring MVC相关的jar文件,这些文件是构建和运行Spring MVC项目所...
在Spring MVC 4.0版本中,它引入了许多改进和新特性,以提升开发效率和应用程序的性能。 1. **依赖注入**:Spring MVC 4.0继续支持Spring框架的核心功能,依赖注入(DI),允许开发者通过配置来管理对象及其依赖...
Spring MVC 是一个强大的Java Web开发框架,它是Spring框架的一部分,专为构建高度可扩展和模块化的Web应用程序而设计。在2015年的版本中,Spring MVC 4已经相当成熟,提供了许多特性来简化开发流程并提高开发效率。...
Spring MVC 是一个基于Java的轻量级Web应用框架,它是Spring框架的重要组成部分,主要用于构建Web应用程序的后端控制器。Spring MVC的设计目标是提供一个清晰的组件化架构,使得开发者可以独立地开发和测试控制器、...
Spring MVC 是一个基于 Java 的轻量级 Web 开发框架,它是 Spring 框架的一个重要模块,主要用于构建 Web 应用程序的后端控制层。这个框架提供了模型-视图-控制器(MVC)设计模式的实现,简化了Java Web应用的开发...
Spring MVC 是一个基于Java的轻量级Web应用框架,它属于Spring框架的一部分,主要用于构建控制器层,实现模型-视图-控制器(Model-View-Controller)架构。在Spring MVC中,开发者可以方便地处理HTTP请求,进行数据...
Spring MVC 是一个基于Java的轻量级Web应用框架,它为构建模型-视图-控制器(Model-View-Controller)架构的应用程序提供了强有力的支持。在本示例中,我们将深入探讨Spring MVC的基本概念、配置以及如何创建一个...
11. **MVC配置**: 使用Java配置或XML配置来设置Spring MVC的行为。Spring Boot简化了这个过程,通过自动配置来减少配置文件的复杂性。 12. **WebSocket支持**: Spring MVC 5.0.3版本引入了对WebSocket的支持,可以...
Spring MVC 是一个功能强大且灵活的框架,它不仅提供了基础的 MVC 实现,还包含了大量高级特性和工具来支持现代 Web 开发的需求。无论是初学者还是有经验的开发者,都能从中受益,构建高效、健壮的 Web 应用。