首先我们在Netbeans下新建一个Servlet项目
然后我们可以看到,它的默认目录结构是这样的。
我们如何改成一个标准的SpringMVC框架的web项目呢?
【复习】我们都知道,servlet下会有个web.xml文件进行一系列路径映射配置。但是目前似乎啥都没有,于是自己建一个吧。SpringMVC不管怎么说,还是基于Servlet的,所以得配置一个接口,让SpringMVC彻底接管,然后我们才能在SpringMVC的框架下编程。
首先让我们导入库文件。右键点击库,然后选择添加库,全局库里面的Spring Framework 4.0.1就好。没错我们以这个版本进行练习。
接着,在WEB-INF里面新建一个文件,内容如下:
文件web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
</web-app>
|
我们从代码可以看出,原本一个地址配备一个class是servlet的工作模式。现在,我们把根地址及以上(也就是所有web请求)都交给了org.springframework.web.servlet.DispatcherServlet来处理。于是,我们整个servlet就连接上了SpringMVC框架。然后我们就可以在SpringMVC上编程了。
注意看classpath部分,我们定义了一个xml文件叫做beans.xml,就像
我们之前单独使用Spring框架一样。按照之前的讲解,beans(豆)里面肯定有很多bean(豆豆)吧,这些都是类工厂,供我们可以使用。这里其实大部分bean是供给SpringMVC使用的。我们在源包那新建一个beans.xml。至于为什么要在源包,而不在web页里面,因为param-value标签里用的是classpath,即类包。文件存在类包的目录里,
文件beans.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
@Controller
@RequestMapping(value = "/helloworld")
public class HiFirstApp {
}
|
在这里,通过setViewName指定了一个输出的视图,这个视图的名字叫index。那么是以什么为后缀的index呢?还记得在beans.xml末尾有这样一个标签吗?
<property name="suffix" value="
.jsp"/>
也就是意味着,这里代表的是index.jsp,以jsp结尾的文件作为视图文件。
同时我们也看到,通过addObject方法,对
message字段添加了“Hello World! HelloSpringMVC2”,这就是往视图里添加处理后的信息了。我们看看视图文件是怎么定义的:
文件index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
</html>
|
看到红字部分的message了吗?程序中的addObject方法就是把这个message字段更改为了Hello World! HelloSpringMVC2。至此,我们整个SpringMVC框架搭建完毕,一个app也写好了。让我们点击运行,部署在tomcat上看看效果。有人问剩下一个在项目里的文件context.xml怎么办?倒是可以不用更改。不过你觉得web地址栏太长的话,这里给出效果和对应关系: