最后我们总结一下这个xml的作用,就是告诉Spring我们的视图文件为存放在/WEB-INF/jsp/目录下的所有jsp文件,并且设置当url请求为helloWorld.do的时候就调用helloWorld这个bean来处理,并把helloWorld这个值注入了viewPage这个参数。
接下来我们新建com.iteye.bolide74.action.HelloWorld这个action类:
HelloWorld.java:
Java代码
package com.iteye.bolide74.action;
import java.util.HashMap;
import java.util.Map;
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 HelloWorld implements Controller {
private String viewPage;
public String getViewPage() {
return viewPage;
}
public void setViewPage(String viewPage) {
this.viewPage = viewPage;
}
@Override
public ModelAndView handleRequest(HttpServletRequest arg0,
HttpServletResponse arg1) throws Exception {
String msg=arg0.getParameter("msgValue");
msg="你输入的值为"+msg;
Map model = new HashMap();
model.put("msg", msg);
return new ModelAndView(getViewPage(), model);
}
}
这个类实现了Controller接口,这个接口是由Spring提供的。它其实是起到了一个代理作用,还记得以前的AOP代理么?忘记了的话可以回头复习一下。
这个类有一个viewPage成员属性,使用了set/get注入。当然你也可以用自定义的属性。它的值代表了这个action所对应的视图文件的文件名,这个我们之前有提到过。
Controller接口有一个handleRequest抽象方法,它的类型为ModelAndView,这个类型是Spring提供的,它的命名就是它的作用,后面我会详细介绍一下这个类型。简单的说就是这个类包含了一个url请求的参数数据和视图内容。如果你知道MVC,那么这个类就包含了其中的M和V而Controller接口就是那个C。
这里的handleRequest方法我们在"原Model"里嵌入了一个msg参数,它的值为HttpServletRequest获取的msgValue这个URL参数的值。
最后在/WEB-INF/jsp/目录下新建一个helloWorld.jsp视图文件:
helloWorld.jsp:
Html代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
http://www.w3.org/TR/html4/loose.dtd">
<%=request.getAttribute("msg")%>
这个我想都看的懂吧,就是一个传统的jsp页面。里面就一个form,注意到name为msgValue的文本输入框了没?上面的HelloWorld.java的作用获取的就是这里的msgValue的值然后处理了一下再返回给客户端。
好了,大功告成,我们直接F11启动,注意是Run on Server,这时候eclipse会新建一个内置浏览器标签,浏览器里的url地址为http://localhost:8080/SpringWeb/WEB-INF/jsp/helloWorld.jsp但是页面内容却显示的是404错误。
这是由于tomcat的安全机制,客户端是无法直接访问WEB-INF这个文件夹以及它下面的所有文件的,因此我们才会把所有重要的配置文件、视图源码之类的都放在这个文件夹下面。
我们要看到劳动成功,就得在地址栏里输入URL为:http://localhost:8080/SpringWeb/helloWorld.do 如果你全部按步骤进行,那么现在你就能看到页面内容为

在输入框里输入Hello,World!再点击Speak按钮,你就能看到“你输入的值为Hello,World!”
恭喜你,终于入门Spring Web编程了。
最后再抛出一个问题,当你在输入框内输入中文“你好!”的时候,页面返回给你的内容却是一段乱码,这该怎么办呢?这就是我们下一篇必须要解决的问题,你可以先自己google一下。