2008-02-15
一个Spring 2.5 版本的Spring MVC应用 Hello world!
由于Spring 2.5全面支持annotation方式,因此大大减少了XML的配置,提高了程序代码的维护和生产效率。下面是我做的一个简单的Hello World!,使用Spring mvc。所有配置全部用annotation,大家可以看看是多么的简单。
首先还是配置好web.xml文件,主要添加的代码有:
以上的配置和以前是一样的,所以没什么好说的。
然后接着我们建立一个applicationContext.xml,作为SPRING的配置文件。以往版本里面SPRING的这个配置文件往往随着程序的增加而越来越臃肿,就我本人来说就十分不喜欢这种方式。因为程序员需要花费大量的时间去管理和维护自己的XML文件,大大的减少了程序员的生产效率。并且由于大量的XML文件,使得新加入团队的人员学习成本的增加,往往造成了很多工时上的浪费。终于,2.5版本开始支持了annotation,使得这个问题可以得到一定的解决。那么好,下面我们来看看现在的配置文件。
很好,很强大,简单一句话搞定。
搞定了IOC的配置文件,那么我们需要一个MVC的配置XML,如果没有annotation,那么这个文件一样会越来越臃肿。然后现在呢?
sim-servlet.xml
同样十分简单,在这里只需要指定好CONTROLLER的包就可以了。
现在配置已经全部OK了,是不是感觉很轻松?哈哈,原来annotation真是如此美妙,为我们节约了大量的配置XML的时间。
下面就只需要一个controller和一个JSP页面就可以完成我们这儿APPLICATION了,那么我们继续。
首先就是controller的定义。
在这里面,使用@Controller定义此类是一个Spring MVC的controller。然后定义好访问的路径"/hello.html"。在方法上面定义好通过GET方式访问时调用我们的sayHello方法,在方法中定义好要传给JSP页面的变量"say"以及内容"hello",然后定位到页面"test"。
一个简单的controller就实现了。
剩下的就没有什么技术含量了,就是一个简单的JSP页面。
然后我们跑跑程序,看看页面,耶!!结果出来了!真爽!
作者:WIWolf 2008-2-15
首先还是配置好web.xml文件,主要添加的代码有:
<listener> <listener-class> org.springframework.web.util.Log4jConfigListener </listener-class> </listener> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>sim</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> </servlet> <servlet-mapping> <servlet-name>sim</servlet-name> <url-pattern>*.html</url-pattern> </servlet-mapping>
以上的配置和以前是一样的,所以没什么好说的。
然后接着我们建立一个applicationContext.xml,作为SPRING的配置文件。以往版本里面SPRING的这个配置文件往往随着程序的增加而越来越臃肿,就我本人来说就十分不喜欢这种方式。因为程序员需要花费大量的时间去管理和维护自己的XML文件,大大的减少了程序员的生产效率。并且由于大量的XML文件,使得新加入团队的人员学习成本的增加,往往造成了很多工时上的浪费。终于,2.5版本开始支持了annotation,使得这个问题可以得到一定的解决。那么好,下面我们来看看现在的配置文件。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<context:annotation-config />
</beans>
很好,很强大,简单一句话搞定。
搞定了IOC的配置文件,那么我们需要一个MVC的配置XML,如果没有annotation,那么这个文件一样会越来越臃肿。然后现在呢?
sim-servlet.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"> <!-- - The controllers are autodetected POJOs labeled with the @Controller annotation. --> <context:component-scan base-package="com.sofmit.sim.wr.web"/> <!-- - This bean configures the 'prefix' and 'suffix' properties of - InternalResourceViewResolver, which resolves logical view names - returned by Controllers. For example, a logical view name of "vets" - will be mapped to "/WEB-INF/jsp/vets.jsp". --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" /> </beans>
同样十分简单,在这里只需要指定好CONTROLLER的包就可以了。
现在配置已经全部OK了,是不是感觉很轻松?哈哈,原来annotation真是如此美妙,为我们节约了大量的配置XML的时间。
下面就只需要一个controller和一个JSP页面就可以完成我们这儿APPLICATION了,那么我们继续。
首先就是controller的定义。
/**
* com.sofmit.sim.wr.web
* Hello.java
*/
package com.sofmit.sim.wr.web;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
/**
* @author TianYe
* 2008-2-14
*/
@Controller
@RequestMapping("/hello.html")
public class Hello {
@RequestMapping(method = RequestMethod.GET)
public String sayHello(Model model){
model.addAttribute("say","hello");
return "test";
}
}
在这里面,使用@Controller定义此类是一个Spring MVC的controller。然后定义好访问的路径"/hello.html"。在方法上面定义好通过GET方式访问时调用我们的sayHello方法,在方法中定义好要传给JSP页面的变量"say"以及内容"hello",然后定位到页面"test"。
一个简单的controller就实现了。
剩下的就没有什么技术含量了,就是一个简单的JSP页面。
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<h2>Test Page say:${say}</h2>
然后我们跑跑程序,看看页面,耶!!结果出来了!真爽!
作者:WIWolf 2008-2-15
评论
wiwolf
2008-02-25
java.lang.ClassNotFoundException: org.springframework.web.content.ContextLoaderListener
没有找到spring包,请再检查一下
没有找到spring包,请再检查一下
laserdance
2008-02-19
我运行了您写的程序,我在myeclipse6.0中运行报错
请问下是什么原因,我检查过了,jar包不少
008-2-19 10:12:46 org.apache.catalina.core.StandardEngine start 信息: Starting Servlet Engine: Apache Tomcat/6.0.13 2008-2-19 10:12:48 org.apache.catalina.core.StandardContext listenerStart 严重: Error configuring application listener of class org.springframework.web.content.ContextLoaderListener java.lang.ClassNotFoundException: org.springframework.web.content.ContextLoaderListener at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3770) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4334) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525) at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920) at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053) at org.apache.catalina.core.StandardHost.start(StandardHost.java:719) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) at org.apache.catalina.core.StandardService.start(StandardService.java:516) at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) at org.apache.catalina.startup.Catalina.start(Catalina.java:566) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) 2008-2-19 10:12:48 org.apache.catalina.core.StandardContext listenerStart 严重: Skipped installing application listeners due to previous error(s) 2008-2-19 10:12:48 org.apache.catalina.core.StandardContext start 严重: Error listenerStart
请问下是什么原因,我检查过了,jar包不少
发表评论
- 浏览: 6005 次

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
一个Spring 2.5 版本的Sp ...
java.lang.ClassNotFoundException: org.sp ...
-- by wiwolf -
一个Spring 2.5 版本的Sp ...
我运行了您写的程序,我在myeclipse6.0中运行报错008-2-19 10 ...
-- by laserdance -
开源发布EVE即时通讯系统
EVE即时通讯系统? 没看明白,呵呵
-- by bubble -
ROR的AJAX心得
楼主做的吗? CSS布局好像不大好哦。 FF中看看新闻页面:)
-- by bencode -
发布即时通讯系统的所有代 ...
干什么用的?
-- by macoo






评论排行榜