admin 管理员组

文章数量: 1086019


2024年1月10日发(作者:shell复数形式)

同Struts 2框架一样,Spring也可以给Web开发者提供一个MVC框架。虽然Web框架只是Spring的一个模块,但是它却应用的非常广泛。本章结合实例分析Spring Web框架的使用方法、各个组件的作用

通过本章的学习,相信读者会对如何使用Spring进行MVC开发有很深入的了解。

第一个Spring MVC例子

【示例】该示例先讲解如何在Eclipse环境下实现Spring MVC框架,然后讲解如何在Ant环境下实现。

在Eclipse中创建一个工程SpringMVC,然后按照下面的步骤添加文件。

1 配置文件

在Spring MVC的WEB-INF目录下创建。在使用Struts 2时,需要在文件配置FilterDispatcher,在使用Spring的MVC框架时,也需要配置文件,代码如下。

xmlns="/xml/ns/j2ee"

xmlns:xsi="/2001/XMLSchema-instance"

xsi:schemaLocation="/xml/ns/j2ee

/xml/ns/j2ee/web-app_2_">

dispatcherServlet

cherServlet

servlet-class>

dispatcherServlet

*.do

上面的代码对DispatcherServlet类进行配置,所有后缀名为.do的请求都会被DispatcherServlet处理。

2 编写用于输出的页面

在ch23文件夹下面创建,该页面用来被Spring的控制器调用向页面上输出一个字符串,代码如下:

<%@page contentType="text/html;charset=UTF-8"%>

第一个Spring MVC实例

<%

String str = (String)ribute("helloWorld");

%>

您输入的欢迎语是<%=str%>

可以看出,上面的代码很简单,就是从请求中获得helloWorld参数的值,然后把它输出到界面上。

3 创建控制器

Spring的MVC框架也有充当控制器的组件。下面先在ch23中创建一个package:23,然后在其中添加类,用于调用去显示字符串,代码如下:

package 23;

import ption;

...

public class HelloWorldAction implements Controller{ //控制器需要实现Controller接口

private Logger logger = ger(ss().getName());

private String helloWorld; //该属性用于获取配置文件中的helloWorld属性

private String viewPage; //用于获取配置文件中的viewPage属性

public ModelAndView handleRequest(HttpServletRequest req, HttpServlet-

Response res)

throws ServletException, IOException { //在该方法中处理用户请求

Map model = new HashMap();

("helloWorld", getHelloWorld()); //将helloWorld属性存 入model中

return new ModelAndView(getViewPage(),model); //调用getViewPage获 取要返回的页面

}

public void setViewPage(String viewPage){

ge = viewPage;

}

public String getViewPage(){

return ge;

}

public void setHelloWorld(String helloWorld){

orld = helloWorld;

}

public String getHelloWorld(){

return orld;

}

}

可以看出,上面的HelloWorldAction类实现了Controller接口。该类有两个属性viewPage和helloWorld。viewPage代表处理完后要返回的页面,helloWorld是要传给显示页面的参数。在handleRequest()方法中进行客户端请求的处理时,首先将参数helloWorld放在Map类型的变量model中,然后调用viewPage显示该参数。

4 创建Spring的配置文件

在前面讲Struts 2时,配置文件主要用来对Action类进行配置,下面看Spring的配置文件是如何配置的。在Spring的WEB-INF下面编写文件,代码如下:

org/dtd/">

UrlHandlerMapping">

helloWorldAction

InternalResourceViewResolver">

alResource-

View

Hello Spring World!

------上面代码中通过标签来实现对控制器以及视图的配置,用

class="orldAction">指定控制器的实现类是orldAction,并且用helloWorldAction来唯一标识该控 制器。

------用代码helloWorldAction为HelloWorldAction建立映射,其中helloWorldAction就是HelloWorldAction类的id,为访问HelloWorldAction的URL。在浏览器中输入localhost:8080/ch23/,就可以访问到HelloWorldAction类。

------ Hello Spring World!用来给HelloWorldAction类的属性helloWorld赋值,用来给其viewPage属性赋值,这样在HelloWorldAction类中才能获取它们。

----- id为viewResolver的bean用来定义视图解析器。

5 运行Spring MVC示例

在Eclipse中启动Tomcat,在浏览器中输入localhost:8080/ch23/,可以访问到,效果如图所示。

访问效果图

说明:通过这个例子可以看出,Spring的MVC框架和Struts2框架有很多的相似之处,例如,它们都要配置文件、实行控制器、配置控制器。当然它们也有很多不同之处,将在下面的几章里讲解。

6 使用JSTL视图技术

JSTL(JSP Standard Tag Library,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的。使用JSTL可以实现迭代和条件判断、数据管理格式化、XML操作以及数据库访问等操作。可以使用JSTL技术去实现。

【示例】该实例讲解如何在JSP文件中使用JSTL技术。在Eclipse中将的代码改为如下所示的代码:

<%@page contentType="text/html;charset=UTF-8"%>

第一个Spring MVC实例

您输入的欢迎语是"${helloWorld}"

然后把配置文件修改为如下代码:

org/dtd/">

helloWorldAction

Hello Spring World!

sayHello

在Eclipse中右击Spring MVC,在弹出的快捷菜单中选择Properties命令,弹出Properties for myApp对话框,在该对话框的左侧选择Java Build Path选项,然后选择上方的Source选项卡。单击右侧的“Add Folder…”按钮,在弹出的对话框中选择WEB-INF下面的classes文件夹并保存。然后在WEB-INF/classes目录下创建ties文件,代码如下:

=ew

=

然后将spring-framework-2.0-m1/lib/j2ee文件夹下的和spring-framework-2.0-m1/lib/ jakarka-taglibs文件夹下面的复制到WEB-INF/lib目录下。在Eclipse中重启Tomcat,然后访问localhost:8080/ch23/。可以看到输出的效果与前面一样。

7 使用Ant实现这个例子

除了在Eclipse环境下开发这个例子外,还可以使用Ant开发,这两种方式读者都必须 掌握。

【示例】此例子讲解如何使用Ant开发这个例子。

7.1 创建目录结构

复制光盘中的工程模版文件夹ProjectTemplate,命名为ch23,可以看到其目录结构如图23-2所示。将图中“${更改为项目名}”的文件夹重命名为ch23。

7.2 复制文件

Eclipse workspace中ch23文件夹的结构如图23-3所示。

图23-2 ch23目录结构示意图 图23-3 Eclipse ch23目录结构示意图

将该文件夹下必要的文件复制到重命名后的文件夹ch23中。

----- 将当前目录下的复制到ch23srcwebjsp下。

----- 将WEB-INF下的复制到ch23configservicesWEB-INF下,覆盖原来的。

----- 将WEB-INF下的复制到ch23configspring下。

----- 将WEB-INFclasses下的ties复制到ch23configspringclasses下。

----- 将WEB-INFlib下的所有jar文件复制到ch23configservicesWEB-INFlib下。

----- 将WEB-INFsrccomexampch23下的所有Java文件复制到ch23srcJavacom exampch23下面。

7.3 修改配置文件

把一些文件的配置进行如下修改。

----- 打开ch23下的ties文件,修改为=%TOMCAT_HOME%。

----- 打开ch23configbuild下的文件,把

name=""value="这里更改为Web工程的名字"/>修改为

name=""value="ch23"/>。

7.4 编译、部署

在命令行中输入ant services-deploy去编译并部署该工程到Web服务器。

7.5 运行

在浏览器中输入localhost:8080/ch23/访问该Web应用,可以看到输出的结构和在Eclipse环境下的结果相同。

说明:所有的Spring MVC程序都可以采用Eclipse和Ant这两种方式去开发。


本文标签: 使用 控制器 文件 代码 配置