springMVC 基本配置
springMVC 原理网上大牛已经讲的很透彻了,也学习到了很多。有兴趣的朋友可自行度娘。自己在学习springMVC的时候,参考了开源中国博客里面的很多写法。最开始仿照的写,但遇到的问题就是,有些博客里面涉及到其他jar的使用,自己还要去下载对应的包,觉得并不是适合一个新手去快速的上手。所以整理了一下和自己遇到的问题供大家参考。
基本jar包:
jstl-1.2.jar 这个并不是必须的,这是jstl标签库,经常用到,所以也放上来了。
web.xml 配置:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<servlet>
<servlet-name>springtest</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springtest</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
这里就配一个servlet,class为 org.springframework.web.servlet.DispatcherServlet
除了配置web.xml以外,还要根据<servlet-name>的值配一个xml文件。这里的值为springtest,所以要配一个springtest-servlet.xml文件。
springtest-servlet.xml 配置:
<!-- 需要和web.xml中配置的servlet-name 保持一致 默认是 '<servlet-name>-servlet.xml' 命名 -->
<?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"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/view"/>
<property name="suffix" value=".jsp" />
</bean>
<!-- 启用spring-mvc 注解 -->
<context:annotation-config />
<!-- 扫描controller包 -->
<context:component-scan base-package="com.springmvc.test.controller"/>
</beans>
springtest-servlet.xml 配置文件放置位置和web.xml在一个目录下就行了。
<property name="prefix" value="/WEB-INF/view"/>
<property name="suffix" value=".jsp" />
这两行的意思就是表明,页面存放的位置以及格式。
controller类
写完配置文件,现在改写controller类了:
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class TestController {
@RequestMapping("/test")
public ModelAndView test(){
System.out.println("22");
ModelAndView mv =new ModelAndView();
mv.addObject("name", "张三");
mv.setViewName("/index");
return mv;
}
}
@controller 注解标明这是一个controller,@RequestMapping("/test") 表示通过访问test来访问这个方法。mv.addObject("name", "张三"); 其实和往request里面设值一样,可以在jsp页面上去出来。mv.setViewName("/index"); 设置页面。这里的"index"要跟页面的命名一样,就是跳转的页面名字就叫做index.jsp。
所以要访问这个方法完整的链接应该是:http://localhost:8080/springTest/test
index.jsp页面:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
${name }
</body>
</html>
${name} 取出后台设置的值。
完。