欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SpringMVC 3:注解配置快速入门

程序员文章站 2022-07-15 11:09:50
...

 

 

 

需要导入的包:

    com.springsource.org.aopalliance-1.0.0.jar  
    spring-aop-3.2.5.RELEASE.jar  
    spring-aspects-3.2.5.RELEASE.jar  
    spring-beans-3.2.5.RELEASE.jar  
    spring-context-3.2.5.RELEASE.jar  
    spring-context-support-3.2.5.RELEASE.jar  
    spring-core-3.2.5.RELEASE.jar  
    spring-expression-3.2.5.RELEASE.jar  
    spring-web-3.2.5.RELEASE.jar  
    spring-webmvc-3.2.5.RELEASE.jar  

Spring3.1之前和Spring3.2的解析器和适配器是不一样的

spring3.1之前使用注解映射器

org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping

spring3.1之后使用的注解映射器。

org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping

spring3.1之前使用注解适配器

org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter

spring3.1之后使用注解适配器

org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter

这里使用spring3.2只有的

 

 

建立springMVC的配置文件,配置注解驱动、注解需要扫描的包、内部资源视图解析器

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
			http://www.springframework.org/schema/beans/spring-beans-3.2.xsd 
			http://www.springframework.org/schema/mvc 
			http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd 
			http://www.springframework.org/schema/context 
			http://www.springframework.org/schema/context/spring-context-3.2.xsd ">
	<!-- 注解驱动 -->
	<mvc:annotation-driven></mvc:annotation-driven>
	<!-- 自动扫描 -->
	<context:component-scan base-package="controller"></context:component-scan>
	<!-- 内部资源视图解析器 -->
	<bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/WEB-INF/page/" />
		<property name="suffix" value=".jsp" />
	</bean>
</beans>

 

 在web.xml中配置当容器启动时加载该文件

  <servlet>
    <servlet-name>defaultServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:SpringMVC-annotation.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>defaultServlet</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>

需要用到的注解

@Controller :生命这个类是一个Controller

@RequestMapping:url路径映射,可以配置多个

建立Controller类,不需要继承任何类

@Controller
public class AnnoController {
	@RequestMapping(value={"a1.do","a2.do","/"})
	public String method(){
		System.out.println("AnnoController method()");
		return "springMVC";
	}
}

 RUL访问路径分别为:

http://127.0.0.1:8080/SpringMVC/a1.do

http://127.0.0.1:8080/SpringMVC/a2.do

http://127.0.0.1:8080/SpringMVC/.do

“/“访问方式是.do要有扩展名,Servlet拦截是需要扩展名

 

View和Controller的参数传递

第一种使用Map,需要在定义的方法内使用Map,jsp页面通过el直接获取

	@RequestMapping(value = { "p" })
	public String param(Map<String, Object> model) {
		System.out.println("AnnoController param()");
		Person p = new Person(1, 17, "lisi");
		model.put("p", p);
		return "springMVC";
	}

 第二种使用Model对象,页面使用<c:forEach items="${personList}" var="p">,命名规则是entiti名+List

	@RequestMapping(value = { "p2" })
	public String param(Model model) {
		System.out.println("AnnoController param()");
		Person p = new Person(2, 27, "wangwu");
		List<Person> list = new ArrayList<Person>();
		list.add(p);
		model.addAttribute(list);
		return "springMVC";
	}