第一个Spring MVC程序
2007-12-23 12:36:35 来源:WEB开发网 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閻愵剙鍔ょ紓宥咃躬瀵鎮㈤崗灏栨嫽闁诲酣娼ф竟濠偽i鍓х<闁诡垎鍐f寖闂佺娅曢幑鍥灳閺冨牆绀冩い蹇庣娴滈箖鏌ㄥ┑鍡欏嚬缂併劎绮妵鍕箳鐎n亞浠鹃梺闈涙搐鐎氫即鐛崶顒夋晬婵絾瀵ч幑鍥蓟閻斿摜鐟归柛顭戝枛椤牆顪冮妶搴′簼缂侇喗鎸搁悾鐑藉础閻愬秵妫冮崺鈧い鎺戝瀹撲礁鈹戦悩鎻掝伀缁惧彞绮欓弻娑氫沪閹规劕顥濋梺閫炲苯澧伴柟铏崌閿濈偛鈹戠€n€晠鏌嶆潪鎷屽厡闁汇倕鎳愮槐鎾存媴閸撴彃鍓卞銈嗗灦閻熲晛鐣烽妷褉鍋撻敐搴℃灍闁绘挻娲橀妵鍕箛闂堟稐绨肩紓浣藉煐濮樸劎妲愰幘璇茬闁冲搫鍊婚ˇ鏉库攽椤旂》宸ユい顓炲槻閻g兘骞掗幋鏃€鐎婚梺瑙勬儗閸樺€熲叺婵犵數濮烽弫鍛婃叏椤撱垹纾婚柟鍓х帛閳锋垶銇勯幒鍡椾壕缂備礁顦遍弫濠氱嵁閸℃稒鍊烽柛婵嗗椤旀劕鈹戦悜鍥╃У闁告挻鐟︽穱濠囨嚃閳哄啰锛滈梺褰掑亰閸欏骸鈻撳⿰鍫熺厸閻忕偟纭堕崑鎾诲箛娴e憡鍊梺纭呭亹鐞涖儵鍩€椤掑啫鐨洪柡浣圭墪閳规垿鎮欓弶鎴犱桓闂佸湱枪閹芥粎鍒掗弮鍫熷仺缂佸顕抽敃鍌涚厱闁哄洢鍔岄悘鐘绘煕閹般劌浜惧┑锛勫亼閸婃牠宕濋敃鈧…鍧楀焵椤掍胶绠剧€光偓婵犱線鍋楀┑顔硷龚濞咃絿妲愰幒鎳崇喓鎷犻懠鑸垫毐闂傚倷鑳舵灙婵炲鍏樺顐ゆ嫚瀹割喖娈ㄦ繝鐢靛У绾板秹寮查幓鎺濈唵閻犺櫣灏ㄥ銉р偓瑙勬尭濡繂顫忛搹鍦<婵☆垰鎼~宥囩磽娴i鍔嶉柟绋垮暱閻g兘骞嬮敃鈧粻濠氭偣閸パ冪骇鐎规挸绉撮—鍐Χ閸℃ê闉嶇紓浣割儐閸ㄥ墎绮嬪澶嬪€锋い鎺嶇瀵灝鈹戦埥鍡楃仯闁告鍕洸濡わ絽鍟崐鍨叏濡厧浜鹃悗姘炬嫹

准备开始研究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.cncms.com)
更多精彩
赞助商链接