SpringMVC 常用标签

spring3引入了 mvc XML 配置命名空间, 简化了在 web 应用程序中设置 Spring mvc 的过程。

1、mvc:annotation-driven

     <mvc:annotation-driven /> 是一种简写形式,完全可以手动配置替代这种简写形式,简写形式可以让初学都快速应用默认配置方案。<mvc:annotation-driven /> 会自动注册DefaultAnnotationHandlerMapping与AnnotationMethodHandlerAdapter 两个bean,是spring MVC为@Controllers分发请求所必须的。并提供了:

  • 支持使用 ConversionService 实例对表单参数进行类型转换
  • 支持使用 @NumberFormat annotation、@DateTimeFormat
  • 注解完成数据类型的格式化
  •  支持使用 @Valid 注解对 JavaBean 实例进行 JSR 303 验证
  • 支持使用 @RequestBody 和 @ResponseBody 注解

<mvc:annotation-driven ></mvc:annotation-driven>相当于如下配置。

<!-- 
    <mvc:annotation-driven ></mvc:annotation-driven>
    -->
    <!-- 上面的标签相当于 如下配置-->       
    <!-- Begin -->
        <!-- HandlerMapping -->
        <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping "></bean>
        <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
        <!-- HandlerAdapter -->
        <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"></bean>
        <bean class="org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter "></bean>
        <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>
        <!-- HadnlerExceptionResolvers -->
        <bean class="org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver "></bean>
        <bean class="org.springframework.web.servlet.mvc.annotation.ResponseStatusExceptionResolver"></bean>
        <bean class="org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver"></bean>
    <!-- End -->

总结: 

前两个是HandlerMapping接口的实现类,用来处理请求映射的。其中第一个是处理@RequestMapping注解的。第二个会将controller类的名字映射为请求url。
中间三个是用来处理请求的。确定调用哪个controller的哪个方法来处理当前请求。第一个处理@Controller注解的处理器,支持自定义方法参数和返回值。第二个是处理继承HttpRequestHandler的处理器。第三个处理继承自Controller接口的处理器。
后面三个是用来处理异常的解析器。
 

<context:component-scan/>标签是告诉Spring扫描指定包下的类,并注册被@Component@Controller@Service@Repository等注解标记的组件。
<mvc:annotation-scan/>是告知Spring启用注解驱动。然后Spring会自动为我们注册上面说到的几个Bean到工厂中,来处理我们的请求。

 

2、mvc:view-controller

   对应WEB-INF目录下面的JSP页面,我们知道是不能直接使用URL访问到。需要通过转发的方式,而我们一般都是在控制器中做转发映射,具体操作如下:

 uccess.jsp页面的目录如下:

一般我们需要配置一个spring配置文件中配置一个视图解析器

1 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
2     <property name="prefix" value="/WEB-INF/"/>
3     <property name="suffix" value=".jsp"></property>
4 </bean>

然后在配置一个控制器

1 @Controller
2 public class UserController {
3 
4     @RequestMapping("/toSuccess")
5     public String update(){
6         return "success";
7     }
8     
9 }

这里使用http://localhost:8080/springmvcdemo/toSuccess 可以正确得到页面。

 

但是对应一些我们不需要其他操作的JSP页面,我们可以使用<mvc:view-controller path=""/>来配置,这样就可以不用再控制器中再去做转发映射。具体操作如下:

在springmvc配置文件中配置

1 <mvc:view-controller path="/login/success"/>

注意:path是JSP页面相对WEB-INF的路径

下面我们使用http://localhost:8080/springmvc-1/login/success来访问,同样可以得到正确页面。

现实开发中一定要开启<mvc:annotation-driven />注解。不然会报404。

 

 

 
 
 

转载于:https://my.oschina.net/lin546/blog/1634184

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值