四. 注解形式的SpringMVC的配置
上面 HelloAction 类必须实现 Controller 或者是 HttpRequestHandler 接口,重写里面的方法, 这样是不太好的。
故一般都是使用 注解进行配置开发。
四.一 SpringMVC 注解配置
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd "> <!-- 配置的是注解的 --> <!-- 扫描哪个基本包,多个用,进行分开 --> <context:component-scan base-package="com.yjl.action"></context:component-scan> <!-- 处理器映射器 --> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"></bean> <!-- 处理器适配器 --> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"></bean> <!-- 视图解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> </bean> </beans>
四.二 HelloAction的注解形式开发
package com.yjl.action; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; /** @atuhor:yuejl @Description: 类描述 */ @Controller //Controller注解放置在类上 public class HelloAction { @RequestMapping("/hello.action") public void hello(){ System.out.println("你好,两个蝴蝶飞,注解形式"); } }
四.三 测试运行
输入网址, 访问为 hello.action
控制台输出:
然而页面上却并没有展示任何东西。 显示 404, 这个是正常的。 因为没有配置页面
五. 处理器映射器和处理器适配器简写
五.一 将映射器和适配器省略
上面注解形式时, 处理器映射器和处理器适配器 进行进行相应的简写,并且 在实际开发中也常常是简写的形式。
将这两句话:
<!-- 处理器映射器 --> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"></bean> <!-- 处理器适配器 --> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"></bean>
用下面的一句话进行代替
<!-- 适配器和映射器简写 --> <mvc:annotation-driven></mvc:annotation-driven>
注意,不要忘记添加 mvc的约束。
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" <!--mvc的约束--> xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd <!--约束--> http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd "> <!-- 配置的是注解的,重写视图解析器 --> <context:component-scan base-package="com.yjl.action"></context:component-scan> <!-- 适配器和映射器简写 --> <mvc:annotation-driven></mvc:annotation-driven> <!-- 视图解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"></property> <property name="suffix" value=".jsp"></property> </bean> </beans>
五.二 输出方法测试
@RequestMapping("/hello.action") public String hello(){ //System.out.println("你好,两个蝴蝶飞,注解形式"); System.out.println("你好,两个蝴蝶飞,简单注解形式"); return null; }
五.三 测试运行
输入网址, 访问为 hello.action