spring mvc方面的问题
西部流云 2009-03-17 04:53:14 web.xml 配置如下
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml,
/WEB-INF/dispather-servlet.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
<!-- 初始化DispatcherServlet,Spring会在web应用的WEB-INF文件夹下寻找名为[servlet-name]-servlet.xml的配置文件,
生成文件中定义的bean。这些bean会覆盖在全局范围(global cope)中定义的同名的bean。
-->
<servlet>
<servlet-name>dispather</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispather</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
dispatcher-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="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass">
<value>org.springframework.web.servlet.view.JstlView</value>
</property>
<!-- View Resolver的prefix和suffix参数指定了表现层资源的前缀和后缀,运行时,Spring 将为指定的表现层资源自动追加
前缀和后缀,以形成一个完整的资源路径。 -->
<property name="prefix" value="/" />
<property name="suffix" value=".jsp" />
</bean>
<!--Request Mapping -->
<bean id="simpleUrlHandlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<!-- “请求/处理单元”关系映射可以看到,这里将“/hello.do”请求映射到处理单元helloController.
<props>节点下可以有多个映射关系存在,目前只定义了一个。 -->
<props>
<prop key="/index.jsp">Controller1</prop>
</props>
</property>
</bean>
<!---Action Definition-->
<bean id="Controller1" class="com.spring.Controller1">
<!--
<property name="helloManager" ref="helloManager" />
-->
</bean>
</beans>
Controller1.java code: 如下
package com.spring;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServlet;
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 Controller1 implements Controller{
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
String name = request.getParameter("name");
if(name==null)
name = "spring";
Map model = new HashMap();
model.put("name", name);
model.put("time", new Date());
return new ModelAndView("test", model);
}
}
提示错误是:
HTTP Status 500 -
--------------------------------------------------------------------------------
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.NoSuchMethodError: org.springframework.web.context.request.RequestContextHolder.setRequestAttributes(Lorg/springframework/web/context/request/RequestAttributes;Z)V
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:473)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:416)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause
java.lang.NoSuchMethodError: org.springframework.web.context.request.RequestContextHolder.setRequestAttributes(Lorg/springframework/web/context/request/RequestAttributes;Z)V
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:825)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:792)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:461)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:416)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.23 logs.
--------------------------------------------------------------------------------
Apache Tomcat/5.5.23