Paste_Image.png
发现报错了,错误信息如下:
Paste_Image.png
错误:
Could not open ServletContext resource [/WEB-INF/applicationContext.xml]
它说我们在WEB-INF下面少了一个applicationContext.xml 这个文件,原来,我们少了对SpringBean工厂的配置,它的意思就是说,我们要规定一下,在Spring容器启动的时候,需要自动加载哪些东西?
于是,我们把 applicationContext.xml 加上。
Paste_Image.png
里面我们啥也不配置,再次启动Tomcat。
Paste_Image.png
这回不报错了。
5. 配置ViewController
我们知道,WEB-INF目录下的任何资源都是无法直接通过浏览器的url地址去访问的,保证了安全性。这也是我们为什么把页面都放在该目录下的原因。
为了有所区分,我们还单独建立了一个pages文件夹,将这些页面保存起来。
Paste_Image.png
现在,为了访问这个页面,我们需要用到SpringMVC的页面跳转机制。
我们在Controller包下新建一个ViewController
Paste_Image.png
点击Finish
Paste_Image.png
ViewController 代码:
packagecom.springmvc.controller;importjavax.servlet.http.HttpServletRequest;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.servlet.ModelAndView;@ControllerpublicclassViewController{@RequestMapping("/view")publicModelAndView view(HttpServletRequest request){ String path = request.getParameter("path") +""; ModelAndView mav = new ModelAndView(); mav.setViewName(path);returnmav; }}
我只需要将想要访问的页面放在path里面,通过url传进来就行了。
因为添加了java类,因此我们重新启动Tomcat。
启动完成后,在地址栏输入:
http://localhost:8088/springmvc/view?path=index
结果:
Paste_Image.png
没关系,我们看他报什么错。
message/springmvc/WEB-INF/pagesindex.jsp
pagesindex.jsp是什么鬼??
原来,在dispatcher-servlet.xml中,我们少写了一个 "/"
Paste_Image.png
添上去就行了。
Paste_Image.png
保存后,因为修改了XML配置文件,因此我们还是需要重新启动Tomcat。
启动完成后,继续!
Paste_Image.png
成功了。
6. 引入静态资源
比如,我在resources/img目录下放了一张图片,怎么引入到index.jsp呢?
Paste_Image.png
background: url(http://localhost:8088/springmvc/resources/img/bg.jpg);background-size:100%100%;
的确,这是一种方式。可是,它有一个缺点就是根路径写死了,我们肯定不希望这样的。
其实,我们可以在viewController里面拿到项目根路径,然后传递到jsp页面就OK了。
Paste_Image.png
我们把调试信息 “恭喜,web項目已經成功搭建!” 删掉。
<%@ page language="java"contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>body{background:url(${contextPath}/resources/img/bg.jpg);background-size:100%100%;
}
${contextPath} 可以取到Controller传过来的contextPath值。
更多详细源码参考来源:http://minglisoft.cn/technology欢迎大家一起学习研究相关技术,源码获取请加求求(企鹅): 2042849237