Я новичок в весеннем MVC.Мне удалось создать приложение типа helloSpring, но это было основано на аннотациях.Я удалил аннотации, так как я все еще изучаю Spring MVC, поэтому я сначала хотел изучить XML-конфигурацию, но по какой-то причине мой jsp не рендерится после удаления части аннотаций.Я думаю, что все конфиги установлены правильно.Как ни странно, моя модификация JSP даже не отображается на странице, когда она появляется, поэтому я нажимаю клавишу ввода в адресной строке, чтобы убедиться, что Tomcat не отображает кэшированные настройки, и происходит сбой с 404. Я использую STS в качестве своей IDE.
web.xml
<!-- The definition of the Root Spring Container shared by all Servlets and Filters -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/root-context.xml</param-value>
</context-param>
<!-- Creates the Spring Container shared by all Servlets and Filters -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- Processes application requests -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
servlet-config.xml
<!-- DispatcherServlet Context: defines this servlet's request-processing infrastructure -->
<!-- Enables the Spring MVC @Controller programming model -->
<!-- annotation-driven /-->
<!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources in the ${webappRoot}/resources directory -->
<resources mapping="/resources/**" location="/resources/" />
<!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory -->
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<beans:property name="prefix" value="/WEB-INF/jsp/" />
<beans:property name="suffix" value=".jsp" />
</beans:bean>
<beans:bean name="/*.htm" class="com.test.project.HomeController" ></beans:bean>
<context:component-scan base-package="com.test.project" />
Homecontroller
protected ModelAndView handleRequestInternal(HttpServletRequest arg0,
HttpServletResponse arg1) throws Exception {
// TODO Auto-generated method stub
//logger.info("Welcome home! the client locale is "+ locale.toString());
java.util.Date today = Calendar.getInstance().getTime();
ModelAndView mv = new ModelAndView("home");
mv.setViewName("home");
mv.addObject("today", today);
return mv; }
}
home.jsp
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page session="false" %>
<html>
<head>
<title>Home- My version</title>
</head>
<body>
<h1>
Hello world!<b> Myversion- version-1</b>
</h1>
<P> The time on the server is ${serverTime2}. </P>
</body>
</html>
index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<c:redirect url="/home.htm" />
Ошибка в консоли Tomcat.
Aug 28, 2011 9:44:57 PM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jdk1.6.0_24\bin;.;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files\Java\jdk1.6.0_24\jre\bin;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\EgisTec MyWinLocker\x86;C:\Program Files (x86)\EgisTec MyWinLocker\x64;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files (x86)\GTK2-Runtime\bin
Aug 28, 2011 9:44:57 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:TestSpring' did not find a matching property.
Aug 28, 2011 9:44:58 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
Aug 28, 2011 9:44:58 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
Aug 28, 2011 9:44:58 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 939 ms
Aug 28, 2011 9:44:58 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Aug 28, 2011 9:44:58 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.16
Aug 28, 2011 9:45:00 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Aug 28, 2011 9:45:00 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Aug 28, 2011 9:45:00 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 2074 ms
Я также только что изменил код контроллера на ..
mv.setViewName("home");
mv.addObject("serverTime2", today);
Спасибо Dhiren