首页 > 代码库 > springMVC学习笔记

springMVC学习笔记

一、springMVC环境搭建

1、新建一个文件,选择 java →pack Explore视图

2、把libs下的requai下的jar包引入进来

3、web.xml启动配置springMVC

<servlet>      <servlet-name>springMVC</servlet-name>      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>【应该是这个jar包下的spring-webmvc-3.2.0.RELEASE.jar下的org.springframework.web.servlet根目录下
<init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:config/spring-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springMVC</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>

4、配置srimgmvc的配置文件

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"   xmlns:context="http://www.springframework.org/schema/context"   xmlns:p="http://www.springframework.org/schema/p"   xmlns:mvc="http://www.springframework.org/schema/mvc"   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   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.xsd        http://www.springframework.org/schema/mvc        http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">                  <bean name="/test1/helloworld" class="com.tgb.web.controller.HelloWorldController" />        <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">        <property name="prefix" value="/"></property>        <property name="suffix" value=".jsp"></property>    </bean> </beans>  

 

上面的class="org.springframework.web.servlet.view.InternalResourceViewResolver"

在spring-webmvc-3.2.0.RELEASE.jar下的

org.springframework.web.servlet.view下的

InternalResourceViewResolver.class 视图分解的解析器

二、第二节

1、新建一个controller。

package com.tgb.web.controller;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.web.servlet.ModelAndView;import org.springframework.web.servlet.mvc.Controller;public class HelloWorldController implements Controller{    @Override    public ModelAndView handleRequest(HttpServletRequest arg0,            HttpServletResponse arg1) throws Exception {    System.out.println("helloworld,视频第一个springmvc");        return new ModelAndView("/welcome");    }}

 

spring如何找到这个controller呢

在spring的配置文件 spring-servlet.xml【默认它的路径和web.xml同级。web.xml→spring-servlet.xml】

could not find the resource 文件spring-servlet.xml【解决方案:spring-servlet.xml修改成springMVC-servlet.xml.修改成默认的文件名了】

填写<bean name="/test1/helloworld" class="com.tgb.web.controller.HelloWorldController" />

最后:浏览器输入http://localhost:8080/springMVC1/test1/helloworld 即可访问

三、修改配置文件和给界面传递参数

1、配置文件不在默认路径下

在src下面新建一个config目录,

查看分发器的源代码。可以知道如何寻找的目录。为contextConfigLocation

修改web.xml  springMVC的初始化参数

    <init-param>              <param-name>contextConfigLocation</param-name>              <param-value>classpath*:config/spring-servlet.xml</param-value>          </init-param>

 2、传递参数

在control里面  //返回string数和//下面是返回map数据

 
  String hello = "lsh hello 提高班";
  Map<String,Object> map = new HashMap<String,Object>();
  map.put("map1", "提高班1");
  map.put("map2", "提高班2");
  map.put("map3", "提高班3");
  //返回string数据
  //return new ModelAndView("/welcome","result",hello);
  //下面是返回map数据
  return new ModelAndView("/welcome","map",map);

要用estl表达式,引入下面两个包。

jstl的jar包

standard-1.1.2的jar包

四、springmvc实现一个controller书写多个方法

新建一个controller

1、public class MultiController 继承一个MultiActionController

package com.tgb.web.controller;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.web.servlet.ModelAndView;import org.springframework.web.servlet.mvc.multiaction.MultiActionController;public class MultiController extends MultiActionController {    public ModelAndView add(HttpServletRequest request,HttpServletResponse response){        System.out.println("----add方法ok----");        return new ModelAndView("/multi","method","add");    }        public ModelAndView update(HttpServletRequest request,HttpServletResponse response){        System.out.println("-----update---方法");        return new ModelAndView("/multi","method","update");    }            }

 

2、springmvc的配置里面如何写,就是在springMVC-servlet.xml下

    <bean id="paramMethodResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">        <property name="paramName" value="action"></property>        </bean>

在spring webmvc架包下的mvc下的multiaction.ParameterMethodNameResolver 

value="action">请求的时候参数也要随着这个变化。

请求标记的一个解析器

继续配置

 <bean name="/test1/multi" class="com.tgb.web.controller.MultiController">        <property name="methodNameResolver">            <ref bean="paramMethodResolver"/>        </property>    </bean>    

 然后浏览器输入:http://localhost:8080/springMVC1/test1/multi?action=add

请求不到,解决方案public ModelAndView add(HttpServletRequest request,HttpServletResponse response)需要括号里面的两个参数

五、第5节静态文件的访问

1、新建一个controller

package com.tgb.web.controller;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.web.servlet.ModelAndView;import org.springframework.web.servlet.mvc.multiaction.MultiActionController;public class StaticController extends MultiActionController {    public ModelAndView img(HttpServletRequest request,HttpServletResponse response){                return new ModelAndView("/staticFile");    }        public ModelAndView jquery(HttpServletRequest request,HttpServletResponse response){        return new ModelAndView("/jquery");    }    }

2、新建一个jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><!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>    <h>图片访问</h>    <div>        <img alt="图片" src="http://www.mamicode.com/img/a.png">    </div>    </body></html>

 

<bean name="/test1/img" class="com.tgb.web.controller.StaticController">        <property name="methodNameResolver">            <ref bean="paramMethodResolver"/>        </property>    </bean>    

地址正确,图片拿不到,静态文件取不到

继续在springmvc的配置文件中,写一个mvc 标签。

不要拦截,直接访问

<!-- 静态资源访问 -->     <mvc:resources location="/img/" mapping="/img/**"/>       <mvc:resources location="/js/" mapping="/js/**"/>       

 

springMVC学习笔记