最新消息:

SpringMVC实现Controller的两种方法:配置和约定

技术经验 goomoon 17978浏览 0评论

毕业几年来,一直在公司的WF框架上修修补补,做的大多都是业务,发现好久没接触过Spring了,当年的春天是否 涛声依旧呢??Spring的是一个优秀的框架,说其实一个框架,不如说其是一个容器,一个完美容纳百川的容器。在J2EE开发的春天里,一个基于Spring的MVC框架–Spring MVC应运而生。想当年恰逢毕业的时候,Spring+Struts+Hibernate框架的组合相当火热,大家都争相学习。。当然本人也是其中一枚。真正到了公司,发现很多公司并没有用这三个框架,相反Spring MVC的应用到是十分广泛。其出自Spring之手,当然也是和 Spring框架最最无缝结合的一个了。

下面,闲话少说,开始写代码吧。。。。(脱离不了程序猿的命^_^)

1、开始,用eclipse建一个Web工程,或者 Maven 工程。

2、添加 必需 的jar 包

springmvc-libs

 

3、修改web.xml添加拦截器,把所有的请求统一交给 org.springframework.web.servlet.DispatcherServlet 来处理。

4、根据 servlet-name,还得在web.xml 的同一目录里建一个 {servlet-name}-servlet.xml 的文件(先贴上文件内容后面在解释)

 

5、下面开始写代码了,首先是 Controller,作为MVC的 view层,是最直接和用户交互的,也是最外面的一层。Controller这里有两种写法,一种是基于配置的,一种是基于注解的。

首先说下基于配置的,这个好像是Spring 很早的版本之前的功能,所有的url都必须在配置文件里配置一下。配置其使用的HandlerMapping和HandlerAdapter以及,改URL对应的Controller类。

并且该Controller类必须实现(implements)org.springframework.web.servlet.mvc.Controller  并 重写 其 ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception的方法。

首先看配置文件:viewspace-servlet.xml

Controller类:IndexController.java

这样 启动tomcat 就可以 访问了。。。 其HandlerMapping映射使用的是 BeanNameUrlHandlerMapping 和 SimpleControllerHandlerAdapter 并且使用 JSTLView 作为 ViewResolver视图解析器。。

这样写的一个缺点就是:

所有的url都得需要在文件里做配置。当系统庞大页面多的时候,这种效率上以及代码可读性上都大打折扣。于是,基于注解的方法就来了。。。

基于注解的实现:

Controller类:ListController.java

看上面方式:一个@Controller 一个 @RequestMapping 两个注解解决了所有的配置,但是 前提呢,是 在配置文件里配置 使用 DefaultAnnotationHandlerMapping 和 AnnotationMethodHandlerAdapter 作为 url映射控制器。

当然以上这两种方式在一个系统里也是可以一块是用的,具体 看你心情咯。

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

文章到此还没结束吗,真的还没结束。。

细心的童鞋发现了,我在viewspace-servlet.xml配置的图形解析器,并不是 JstlView而是换成 VelocityView 。。这是因为本人用了好几年Velocity了,不太习惯原声的Jstl。。虽然语法上相当无几,所以还是研究了下,把他改成了VelocityView。

下面共享下方法:其实很简单,就是更换了配置信息,ViewResolver 使用 org.springframework.web.servlet.view.velocity.VelocityConfigurer ,并且 viewClass 使用 org.springframework.web.servlet.view.velocity.VelocityView,,在此之前,还得加个配置文件 velocity.properties 放在了 classpath:common/velocity.properties 目录下。

详细代码如下:

velocity.properties文件:

viewspace-servlet.xml文件:

好的,。到此结束了,这次真的结束了。

转载请注明:刘召考的博客 » SpringMVC实现Controller的两种方法:配置和约定

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址