概要

记录一下搭建SpringMVC框架的步骤

视图定位也就是改变jsp在项目中的路径

一、新建javaweb项目springmvc1,在lib中导入jar包

此项目上传了GitHub,方便去下载jar包

https://github.com/yeyangtao/springmvc

二、web-inf下的web.xml文件

其中的serve-name的spingmvc下一步会用到

<?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/j2ee" xmlns:web="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd http://xmlns.jcp.org/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.4">
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>

三、在同路径下创建springmvc-servlet.xml

文件名中的springmvc就对应上一步的servlet-name中的springmvc

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="simpleUrlHandlerMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/hello">indexController</prop>
</props>
</property>
</bean>
<bean id="indexController" class="controller.IndexController"></bean>
</beans>

/hello 指定待会浏览器上输入的路径

四、在src中新建IndexController类实现Controller接口

package 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 IndexController implements Controller {
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
ModelAndView mav = new ModelAndView("index.jsp");
mav.addObject("message", "Hello Spring MVC");
return mav;
}
}

ModelAndView中的Model代表模型,View代表视图,这个名字就很好地解释了该类的作用。业务处理器调用模型层处理完用户请求后,把结果数据存储在该类的model属性中,把要返回的视图信息存储在该类的view属性中,然后让该ModelAndView返回该Spring MVC框架。框架通过调用配置文件中定义的视图解析器,对该对象进行解析,最后把结果数据显示在指定的页面上(index.jsp)。

五、index.jsp用来显示

采用el表达式 ${message}

六、部署到tommcat上测试

浏览器输入http://localhost:8080/springmvc1/hello

结果:

七、视图定位

问题:jsp文件是在WebContent文件夹下,现在如果要修改jsp文件存放的位置该怎么修改?

1、修改springmvc-servlet.xml,增加

    </bean>
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/page/" />
<property name="suffix" value=".jsp" />
</bean>

其作用是把视图约定在 /WEB-INF/page/*.jsp 这个位置

2、把控制类中ModelAndView mav = new ModelAndView("index.jsp");

改成ModelAndView mav = new ModelAndView("index");

因为配置文件中已经指明了jsp后缀

3、在web-inf中新建page文件夹,并将index.jsp移到此处

4、重启tomcat

好处:更利于管理和维护

SpringMVC的基础配置及视图定位的更多相关文章

  1. SpringMVC最基础配置

    SpringMVC和Struts2一样,是前后台的一个粘合剂,struts2用得比较熟悉了,现在来配置一下SpringMVC,看看其最基础配置和基本使用.SpriingMVC不是太难,学习成本不高,现 ...

  2. Java SpringMVC学习--基础配置

    快速开始一个基于SpringMVC框架的web项目 开发工具 Eclipse neon.2 运行环境 tomcat8.5 1.在Eclipse中新建一个web项目:File-New-Dynamic W ...

  3. SpringMvc的基础配置<一>

    SpringMVC学习 1.此篇博文是学习以下博文,并通过亲测得来:   1.1.网址:http://www.cnblogs.com/bigdataZJ/p/springmvc1.html 2.所用软 ...

  4. 分布式项目开发-springmvc.xmll基础配置

    基础步骤: 1 包扫描 2 驱动开发 3 视图解析器 4 文件上传解析器 5 拦截器 6 静态资源 <beans xmlns="http://www.springframework.o ...

  5. SpringBoot或者SpringMVC 临时取消配置的视图页面的前后缀

    // 重定向到新的jsp页面return "redirect:/index.jsp"; // 请求转发到新的jsp页面 return "forward:/index.js ...

  6. SpringMVC基础配置及使用

    SpringMVC基础配置及使用 SpringMVC:1.SpringMVC和Spring的关系:    软件开发的三层架构: web层[表示层.表现层]---->Service层----> ...

  7. SpringMVC基础配置(通过注解配置,非xml配置)

    SpringMVC是什么,有多火,我这里就不再啰嗦了,SpringMVC比Struts2好用太多,我在学校的时候私下里两种都接触过,对比之后果断选择了SpringMVC,后来在做Android应用开发 ...

  8. SpringMVC整合freeMarker实现页面静态化+SpringMVC配置多视图

    一.背景 1.什么是FreeMarker FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写 FreeMarker被设计用来生成HTML Web页面,特别是基于 ...

  9. SpringMVC配置多视图-内容协商原理

    SpringMVC配置多视图-内容协商原理 2014年03月06日 16:46:59 日积月累_滴水石穿 阅读数:10964更多 个人分类: SpringMVC   Spring Framework ...

随机推荐

  1. JavaScript总结(1)

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...

  2. JavaScript高级程序设计学习笔记第八章--BOM

    1.间歇调用和超时调用: 超时调用:需要使用 window 对象的 setTimeout()方法,它接受两个参数:要执行的代码和以毫秒表示的时间(即在执行代码前需要等待多少毫秒).其中,第一个参数可以 ...

  3. [poj3417]Network(LCA+树形dp)

    题意:给出一棵无根树,然后下面再给出m条边,把这m条边连上,每次你去两条边,规定一条是树边,一条是新边,问有多少种方案能使树断裂. 解题关键:边权转化为点权,记录每条边被环覆盖的次数,通过val[a] ...

  4. 如何更改linux文件的拥有者及用户…

    本文整理自: http://blog.163.com/yanenshun@126/blog/static/128388169201203011157308/ http://ydlmlh.iteye.c ...

  5. Eclipse&nbsp;安装插件

    Eclipse 安装插件 本文介绍Eclipse插件的安装方法.Eclipse插件的安装方法大体有三种:直接复制.使用link文件,以及使用eclipse自带的图形界面的插件安装方法. AD: 做为当 ...

  6. centos6.5安装gmime-2.6

    安装gmime库所需要的依赖库: 1 libffi库安装 简介:glib安装时依赖的库 解压: tar xf libffi-3.0.0.tar.gz 进入目录: cd libffi-3.0.0 安装: ...

  7. oracle查看监听状态

    产看状态命令:lsnrctl status 启动监听:lsnrctl start 关闭监听:lsnrctl stop LSNRCTL for 32-bit Windows: Version 10.2. ...

  8. framework资源文件读取

    1.在framework里面读framwork自己的资源文件 这是framework内部的资源,跟其他都没有关系.但是framework不能单独存在,必须要放在某个“主程序”中才能起作用.bundle ...

  9. Python服务Debian打包新思路

    此文已由作者张耕源授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. Debian 打包一直是比较冷僻的技术,大部分同学都不会接触到它. 但是我们 Debian 服务器上安装的各 ...

  10. ue4 tags 与 cast

    父类设置tags,子类默认自动添加这个tags 子类可以强行删除父类的tags,这时如果把子类cast为父类,一样找不到这个tags 综上,要找到一个actor的tags,那么这个actor上就一定要 ...