準備開始研究SPRing,今天把開發環境搭好了,然后照著Spring官方站點的Tutorials(Developing a Spring Framework MVC application step-by-step)做好了第一個MVC應用!為了簡化,我把例子中的很多不必要的東西全部刪掉了,只留下一個最簡單的MVC應用。
開發環境:Windows xp SP1 English,Eclipse 3.0,Tomcat 5.0,Spring 1.1RC2
功能:實現一個SpringappController和一個view.jsp,SpringappController負責接收一個hello.c命令,然后創建model,渲染view.jsp。
先在Eclipse下創建一個springapp的工程(也可以不用Eclipse,但是要麻煩一點),把必要的目錄結構和文件建立起來:
其中,web/WEB-INF/lib/下的3個jar文件可以在Spring的dist和lib目錄下找著,然后我們先編寫一個SpringappController.java:
import org.springframework.web.servlet.mvc.Controller;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class SpringappController implements Controller {
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
return new ModelAndView("view.jsp", "model", "Hello, world!");
}
}
在這里Controller創建的Model僅僅是一個簡單的字符串,實際的應用程序中,Controller應當接收URL參數,然后訪問業務層,獲得Model。
接著創建view.jsp來渲染結果,用到了jstl標簽:
<%@ page session="false"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %>
<Html><head><title>View.jsp</title></head>
<body bgcolor="#FFFFFF">
Result: <c:out value="${model}" />
</body></html>
下一步是創建web.xml,以“.c”結束的URL會被映射到Spring的DispatcherServlet:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC '-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN' 'http://java.sun.com/dtd/web-app_2_3.dtd'>
<web-app>
<servlet>
<servlet-name>springapp</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springapp</servlet-name>
<url-pattern>*.c</url-pattern>
</servlet-mapping>
</web-app>
Spring MVC所需要的springapp-servlet.xml:
<?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="springappController" class="SpringappController"/>
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/hello.c">springappController</prop>
</props>
</property>
</bean>
</beans>
最后寫一個Ant腳本,你所要更改的僅僅是把變量tomcat.home的路徑設置為你機器上的實際路徑:
<?xml version="1.0"?>
<project name="springapp" default="build">
<property name="src.dir" value="src" />
<property name="tomcat.home" value="D:/software/tomcat" />
<property name="web.dir" value="${tomcat.home}/webapps/springmvc" />
<property name="build.dir" value="${web.dir}/WEB-INF/classes" />
<target name="init">
<copy todir="${web.dir}">
<fileset dir="./web">
<include name="**/*.*" />
</fileset>
</copy>
</target>
<target name="build" depends="init">
<mkdir dir="${build.dir}"/>
<javac srcdir="${src.dir}" destdir="${build.dir}" target="1.4">
<classpath>
<fileset file="${web.dir}/WEB-INF/lib/*.jar" />
<fileset dir="${tomcat.home}/common/lib">
<include name="servlet*.jar"/>
</fileset>
</classpath>
</javac>
</target>
</project>
大功告成!運行Ant,成功后啟動Tomcat,然后在瀏覽器中輸入“http://localhost:8080/springmvc/hello.c”:
OK!view.jsp顯示出了model的值“Hello, world!”。如果出現錯誤,仔細檢查所需的jar文件以及Tomcat路徑的設置。
(出處:http://www.companysz.com)
新聞熱點
疑難解答