From 427f0d64b9cb6518e8e3d5aeed8559e0758e0648 Mon Sep 17 00:00:00 2001 From: Arjen Poutsma Date: Mon, 3 Nov 2008 11:44:37 +0000 Subject: [PATCH] Moved tests from testsuite to web.servlet --- .../web/servlet/DispatcherServletTests.java | 866 ------------------ .../web/servlet/theme/ThemeResolverTests.java | 80 -- .../web/context/WEB-INF/empty-servlet.xml | 12 + .../web/context/WEB-INF/sessionContext.xml | 16 + .../web/servlet/complexviews.properties | 3 + 5 files changed, 31 insertions(+), 946 deletions(-) delete mode 100644 org.springframework.testsuite/src/test/java/org/springframework/web/servlet/DispatcherServletTests.java delete mode 100644 org.springframework.testsuite/src/test/java/org/springframework/web/servlet/theme/ThemeResolverTests.java create mode 100644 org.springframework.web.servlet/src/test/resources/org/springframework/web/context/WEB-INF/empty-servlet.xml create mode 100644 org.springframework.web.servlet/src/test/resources/org/springframework/web/context/WEB-INF/sessionContext.xml create mode 100644 org.springframework.web.servlet/src/test/resources/org/springframework/web/servlet/complexviews.properties diff --git a/org.springframework.testsuite/src/test/java/org/springframework/web/servlet/DispatcherServletTests.java b/org.springframework.testsuite/src/test/java/org/springframework/web/servlet/DispatcherServletTests.java deleted file mode 100644 index 86b3d0845a7..00000000000 --- a/org.springframework.testsuite/src/test/java/org/springframework/web/servlet/DispatcherServletTests.java +++ /dev/null @@ -1,866 +0,0 @@ -/* - * Copyright 2002-2008 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.web.servlet; - -import java.io.IOException; -import java.util.Locale; - -import javax.servlet.Servlet; -import javax.servlet.ServletConfig; -import javax.servlet.ServletContext; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import junit.framework.TestCase; - -import org.springframework.beans.MutablePropertyValues; -import org.springframework.beans.PropertyValue; -import org.springframework.beans.TestBean; -import org.springframework.context.ConfigurableApplicationContext; -import org.springframework.context.support.DefaultMessageSourceResolvable; -import org.springframework.mock.web.MockHttpServletRequest; -import org.springframework.mock.web.MockHttpServletResponse; -import org.springframework.mock.web.MockServletConfig; -import org.springframework.mock.web.MockServletContext; -import org.springframework.validation.BindException; -import org.springframework.web.bind.EscapedErrors; -import org.springframework.web.context.ServletConfigAwareBean; -import org.springframework.web.context.ServletContextAwareBean; -import org.springframework.web.context.WebApplicationContext; -import org.springframework.web.context.support.StaticWebApplicationContext; -import org.springframework.web.multipart.MaxUploadSizeExceededException; -import org.springframework.web.multipart.MultipartHttpServletRequest; -import org.springframework.web.multipart.MultipartResolver; -import org.springframework.web.servlet.handler.SimpleMappingExceptionResolver; -import org.springframework.web.servlet.handler.SimpleUrlHandlerMapping; -import org.springframework.web.servlet.mvc.BaseCommandController; -import org.springframework.web.servlet.mvc.Controller; -import org.springframework.web.servlet.support.RequestContext; -import org.springframework.web.servlet.support.RequestContextUtils; -import org.springframework.web.servlet.theme.AbstractThemeResolver; -import org.springframework.web.servlet.view.InternalResourceViewResolver; -import org.springframework.web.util.WebUtils; - -/** - * @author Rod Johnson - * @author Juergen Hoeller - * @author Rob Harrop - */ -public class DispatcherServletTests extends TestCase { - - private static final String URL_KNOWN_ONLY_PARENT = "/knownOnlyToParent.do"; - - private MockServletConfig servletConfig; - - private DispatcherServlet simpleDispatcherServlet; - - private DispatcherServlet complexDispatcherServlet; - - - protected void setUp() throws ServletException { - servletConfig = new MockServletConfig(new MockServletContext(), "simple"); - MockServletConfig complexConfig = new MockServletConfig(servletConfig.getServletContext(), "complex"); - complexConfig.addInitParameter("publishContext", "false"); - complexConfig.addInitParameter("class", "notWritable"); - complexConfig.addInitParameter("unknownParam", "someValue"); - - simpleDispatcherServlet = new DispatcherServlet(); - simpleDispatcherServlet.setContextClass(SimpleWebApplicationContext.class); - simpleDispatcherServlet.init(servletConfig); - - complexDispatcherServlet = new DispatcherServlet(); - complexDispatcherServlet.setContextClass(ComplexWebApplicationContext.class); - complexDispatcherServlet.setNamespace("test"); - complexDispatcherServlet.addRequiredProperty("publishContext"); - complexDispatcherServlet.init(complexConfig); - } - - private ServletContext getServletContext() { - return servletConfig.getServletContext(); - } - - - public void testDispatcherServletGetServletNameDoesNotFailWithoutConfig() { - DispatcherServlet ds = new DispatcherServlet(); - assertEquals(null, ds.getServletConfig()); - assertEquals(null, ds.getServletName()); - assertEquals(null, ds.getServletContext()); - } - - public void testConfiguredDispatcherServlets() { - assertTrue("Correct namespace", - ("simple" + FrameworkServlet.DEFAULT_NAMESPACE_SUFFIX).equals(simpleDispatcherServlet.getNamespace())); - assertTrue("Correct attribute", - (FrameworkServlet.SERVLET_CONTEXT_PREFIX + "simple").equals(simpleDispatcherServlet.getServletContextAttributeName())); - assertTrue("Context published", - simpleDispatcherServlet.getWebApplicationContext() == - getServletContext().getAttribute(FrameworkServlet.SERVLET_CONTEXT_PREFIX + "simple")); - - assertTrue("Correct namespace", "test".equals(complexDispatcherServlet.getNamespace())); - assertTrue("Correct attribute", - (FrameworkServlet.SERVLET_CONTEXT_PREFIX + "complex").equals(complexDispatcherServlet.getServletContextAttributeName())); - assertTrue("Context not published", - getServletContext().getAttribute(FrameworkServlet.SERVLET_CONTEXT_PREFIX + "complex") == null); - - simpleDispatcherServlet.destroy(); - complexDispatcherServlet.destroy(); - } - - public void testInvalidRequest() throws Exception { - MockHttpServletRequest request = new MockHttpServletRequest(getServletContext(), "GET", "/invalid.do"); - MockHttpServletResponse response = new MockHttpServletResponse(); - simpleDispatcherServlet.service(request, response); - assertTrue("Not forwarded", response.getForwardedUrl() == null); - assertTrue("correct error code", response.getStatus() == HttpServletResponse.SC_NOT_FOUND); - } - - public void testRequestHandledEvent() throws Exception { - MockHttpServletRequest request = new MockHttpServletRequest(getServletContext(), "GET", "/locale.do"); - MockHttpServletResponse response = new MockHttpServletResponse(); - complexDispatcherServlet.service(request, response); - ComplexWebApplicationContext.TestApplicationListener listener = - (ComplexWebApplicationContext.TestApplicationListener) - complexDispatcherServlet.getWebApplicationContext().getBean("testListener"); - assertEquals(1, listener.counter); - } - - public void testPublishEventsOff() throws Exception { - complexDispatcherServlet.setPublishEvents(false); - MockHttpServletRequest request = new MockHttpServletRequest(getServletContext(), "GET", "/locale.do"); - MockHttpServletResponse response = new MockHttpServletResponse(); - complexDispatcherServlet.service(request, response); - ComplexWebApplicationContext.TestApplicationListener listener = - (ComplexWebApplicationContext.TestApplicationListener) - complexDispatcherServlet.getWebApplicationContext().getBean("testListener"); - assertEquals(0, listener.counter); - } - - public void testFormRequest() throws Exception { - MockHttpServletRequest request = new MockHttpServletRequest(getServletContext(), "GET", "/form.do"); - request.addPreferredLocale(Locale.CANADA); - MockHttpServletResponse response = new MockHttpServletResponse(); - - simpleDispatcherServlet.service(request, response); - assertTrue("forwarded to form", "form".equals(response.getForwardedUrl())); - DefaultMessageSourceResolvable resolvable = new DefaultMessageSourceResolvable(new String[] {"test"}); - RequestContext rc = new RequestContext(request); - - assertTrue("hasn't RequestContext attribute", request.getAttribute("rc") == null); - assertTrue("Correct WebApplicationContext", - RequestContextUtils.getWebApplicationContext(request) instanceof SimpleWebApplicationContext); - assertTrue("Correct context path", rc.getContextPath().equals(request.getContextPath())); - assertTrue("Correct locale", Locale.CANADA.equals(RequestContextUtils.getLocale(request))); - assertTrue("Correct theme", - AbstractThemeResolver.ORIGINAL_DEFAULT_THEME_NAME.equals(RequestContextUtils.getTheme(request).getName())); - assertTrue("Correct message", "Canadian & test message".equals(rc.getMessage("test"))); - - assertTrue("Correct WebApplicationContext", rc.getWebApplicationContext() == simpleDispatcherServlet.getWebApplicationContext()); - assertTrue("Correct Errors", !(rc.getErrors(BaseCommandController.DEFAULT_COMMAND_NAME) instanceof EscapedErrors)); - assertTrue("Correct Errors", !(rc.getErrors(BaseCommandController.DEFAULT_COMMAND_NAME, false) instanceof EscapedErrors)); - assertTrue("Correct Errors", rc.getErrors(BaseCommandController.DEFAULT_COMMAND_NAME, true) instanceof EscapedErrors); - assertEquals("Correct message", "Canadian & test message", rc.getMessage("test")); - assertEquals("Correct message", "Canadian & test message", rc.getMessage("test", null, false)); - assertEquals("Correct message", "Canadian & test message", rc.getMessage("test", null, true)); - assertEquals("Correct message", "Canadian & test message", rc.getMessage(resolvable)); - assertEquals("Correct message", "Canadian & test message", rc.getMessage(resolvable, false)); - assertEquals("Correct message", "Canadian & test message", rc.getMessage(resolvable, true)); - assertEquals("Correct message", "Canadian & test message", rc.getMessage("test", "default")); - assertEquals("Correct message", "default", rc.getMessage("testa", "default")); - assertEquals("Correct message", "default &", rc.getMessage("testa", null, "default &", true)); - } - - public void testParameterizableViewController() throws Exception { - MockHttpServletRequest request = new MockHttpServletRequest(getServletContext(), "GET", "/view.do"); - request.addUserRole("role1"); - MockHttpServletResponse response = new MockHttpServletResponse(); - complexDispatcherServlet.service(request, response); - assertTrue("forwarded to form", "myform.jsp".equals(response.getForwardedUrl())); - } - - public void testHandlerInterceptorSuppressesView() throws Exception { - MockHttpServletRequest request = new MockHttpServletRequest(getServletContext(), "GET", "/view.do"); - request.addUserRole("role1"); - request.addParameter("noView", "true"); - MockHttpServletResponse response = new MockHttpServletResponse(); - complexDispatcherServlet.service(request, response); - assertTrue("Not forwarded", response.getForwardedUrl() == null); - } - - public void testLocaleRequest() throws Exception { - MockHttpServletRequest request = new MockHttpServletRequest(getServletContext(), "GET", "/locale.do"); - request.addPreferredLocale(Locale.CANADA); - MockHttpServletResponse response = new MockHttpServletResponse(); - assertEquals(98, simpleDispatcherServlet.getLastModified(request)); - simpleDispatcherServlet.service(request, response); - assertTrue("Not forwarded", response.getForwardedUrl() == null); - } - - public void testUnknownRequest() throws Exception { - MockHttpServletRequest request = new MockHttpServletRequest(getServletContext(), "GET", "/unknown.do"); - MockHttpServletResponse response = new MockHttpServletResponse(); - complexDispatcherServlet.service(request, response); - assertEquals("forwarded to failed", "failed0.jsp", response.getForwardedUrl()); - assertTrue("Exception exposed", request.getAttribute("exception").getClass().equals(ServletException.class)); - } - - public void testAnotherFormRequest() throws Exception { - MockHttpServletRequest request = new MockHttpServletRequest(getServletContext(), "GET", "/form.do;jsessionid=xxx"); - request.addPreferredLocale(Locale.CANADA); - MockHttpServletResponse response = new MockHttpServletResponse(); - - complexDispatcherServlet.service(request, response); - assertTrue("forwarded to form", "myform.jsp".equals(response.getForwardedUrl())); - assertTrue("has RequestContext attribute", request.getAttribute("rc") != null); - DefaultMessageSourceResolvable resolvable = new DefaultMessageSourceResolvable(new String[] {"test"}); - - RequestContext rc = (RequestContext) request.getAttribute("rc"); - assertTrue("Not in HTML escaping mode", !rc.isDefaultHtmlEscape()); - assertTrue("Correct WebApplicationContext", rc.getWebApplicationContext() == complexDispatcherServlet.getWebApplicationContext()); - assertTrue("Correct context path", rc.getContextPath().equals(request.getContextPath())); - assertTrue("Correct locale", Locale.CANADA.equals(rc.getLocale())); - assertTrue("Correct Errors", !(rc.getErrors(BaseCommandController.DEFAULT_COMMAND_NAME) instanceof EscapedErrors)); - assertTrue("Correct Errors", !(rc.getErrors(BaseCommandController.DEFAULT_COMMAND_NAME, false) instanceof EscapedErrors)); - assertTrue("Correct Errors", rc.getErrors(BaseCommandController.DEFAULT_COMMAND_NAME, true) instanceof EscapedErrors); - assertEquals("Correct message", "Canadian & test message", rc.getMessage("test")); - assertEquals("Correct message", "Canadian & test message", rc.getMessage("test", null, false)); - assertEquals("Correct message", "Canadian & test message", rc.getMessage("test", null, true)); - assertEquals("Correct message", "Canadian & test message", rc.getMessage(resolvable)); - assertEquals("Correct message", "Canadian & test message", rc.getMessage(resolvable, false)); - assertEquals("Correct message", "Canadian & test message", rc.getMessage(resolvable, true)); - - rc.setDefaultHtmlEscape(true); - assertTrue("Is in HTML escaping mode", rc.isDefaultHtmlEscape()); - assertTrue("Correct Errors", rc.getErrors(BaseCommandController.DEFAULT_COMMAND_NAME) instanceof EscapedErrors); - assertTrue("Correct Errors", !(rc.getErrors(BaseCommandController.DEFAULT_COMMAND_NAME, false) instanceof EscapedErrors)); - assertTrue("Correct Errors", rc.getErrors(BaseCommandController.DEFAULT_COMMAND_NAME, true) instanceof EscapedErrors); - assertEquals("Correct message", "Canadian & test message", rc.getMessage("test")); - assertEquals("Correct message", "Canadian & test message", rc.getMessage("test", null, false)); - assertEquals("Correct message", "Canadian & test message", rc.getMessage("test", null, true)); - assertEquals("Correct message", "Canadian & test message", rc.getMessage(resolvable)); - assertEquals("Correct message", "Canadian & test message", rc.getMessage(resolvable, false)); - assertEquals("Correct message", "Canadian & test message", rc.getMessage(resolvable, true)); - } - - public void testAnotherLocaleRequest() throws Exception { - MockHttpServletRequest request = new MockHttpServletRequest(getServletContext(), "GET", "/locale.do;abc=def"); - request.addPreferredLocale(Locale.CANADA); - request.addUserRole("role1"); - MockHttpServletResponse response = new MockHttpServletResponse(); - assertEquals(99, complexDispatcherServlet.getLastModified(request)); - complexDispatcherServlet.service(request, response); - - assertTrue("Not forwarded", response.getForwardedUrl() == null); - assertTrue(request.getAttribute("test1") != null); - assertTrue(request.getAttribute("test1x") == null); - assertTrue(request.getAttribute("test1y") == null); - assertTrue(request.getAttribute("test2") != null); - assertTrue(request.getAttribute("test2x") == null); - assertTrue(request.getAttribute("test2y") == null); - assertTrue(request.getAttribute("test3") != null); - assertTrue(request.getAttribute("test3x") != null); - assertTrue(request.getAttribute("test3y") != null); - } - - public void testExistingMultipartRequest() throws Exception { - MockHttpServletRequest request = new MockHttpServletRequest(getServletContext(), "GET", "/locale.do;abc=def"); - request.addPreferredLocale(Locale.CANADA); - request.addUserRole("role1"); - MockHttpServletResponse response = new MockHttpServletResponse(); - ComplexWebApplicationContext.MockMultipartResolver multipartResolver = - (ComplexWebApplicationContext.MockMultipartResolver) - complexDispatcherServlet.getWebApplicationContext().getBean("multipartResolver"); - MultipartHttpServletRequest multipartRequest = multipartResolver.resolveMultipart(request); - complexDispatcherServlet.service(multipartRequest, response); - multipartResolver.cleanupMultipart(multipartRequest); - assertNotNull(request.getAttribute("cleanedUp")); - } - - public void testMultipartResolutionFailed() throws Exception { - MockHttpServletRequest request = new MockHttpServletRequest(getServletContext(), "GET", "/locale.do;abc=def"); - request.addPreferredLocale(Locale.CANADA); - request.addUserRole("role1"); - request.setAttribute("fail", Boolean.TRUE); - MockHttpServletResponse response = new MockHttpServletResponse(); - complexDispatcherServlet.service(request, response); - assertTrue("forwarded to failed", "failed0.jsp".equals(response.getForwardedUrl())); - assertEquals(200, response.getStatus()); - assertTrue("correct exception", - request.getAttribute(SimpleMappingExceptionResolver.DEFAULT_EXCEPTION_ATTRIBUTE) instanceof MaxUploadSizeExceededException); - } - - public void testHandlerInterceptorAbort() throws Exception { - MockHttpServletRequest request = new MockHttpServletRequest(getServletContext(), "GET", "/locale.do"); - request.addParameter("abort", "true"); - request.addPreferredLocale(Locale.CANADA); - request.addUserRole("role1"); - MockHttpServletResponse response = new MockHttpServletResponse(); - complexDispatcherServlet.service(request, response); - assertTrue("Not forwarded", response.getForwardedUrl() == null); - assertTrue(request.getAttribute("test1") != null); - assertTrue(request.getAttribute("test1x") != null); - assertTrue(request.getAttribute("test1y") == null); - assertTrue(request.getAttribute("test2") == null); - assertTrue(request.getAttribute("test2x") == null); - assertTrue(request.getAttribute("test2y") == null); - } - - public void testModelAndViewDefiningException() throws Exception { - MockHttpServletRequest request = new MockHttpServletRequest(getServletContext(), "GET", "/locale.do"); - request.addPreferredLocale(Locale.CANADA); - request.addUserRole("role1"); - request.addParameter("fail", "yes"); - MockHttpServletResponse response = new MockHttpServletResponse(); - try { - complexDispatcherServlet.service(request, response); - assertEquals(200, response.getStatus()); - assertTrue("forwarded to failed", "failed1.jsp".equals(response.getForwardedUrl())); - } - catch (ServletException ex) { - fail("Should not have thrown ServletException: " + ex.getMessage()); - } - } - - public void testSimpleMappingExceptionResolverWithSpecificHandler1() throws Exception { - MockHttpServletRequest request = new MockHttpServletRequest(getServletContext(), "GET", "/locale.do"); - request.addPreferredLocale(Locale.CANADA); - request.addUserRole("role1"); - request.addParameter("access", "yes"); - MockHttpServletResponse response = new MockHttpServletResponse(); - complexDispatcherServlet.service(request, response); - assertEquals(200, response.getStatus()); - assertEquals("forwarded to failed", "failed2.jsp", response.getForwardedUrl()); - assertTrue("Exception exposed", request.getAttribute("exception") instanceof IllegalAccessException); - } - - public void testSimpleMappingExceptionResolverWithSpecificHandler2() throws Exception { - MockHttpServletRequest request = new MockHttpServletRequest(getServletContext(), "GET", "/locale.do"); - request.addPreferredLocale(Locale.CANADA); - request.addUserRole("role1"); - request.addParameter("servlet", "yes"); - MockHttpServletResponse response = new MockHttpServletResponse(); - complexDispatcherServlet.service(request, response); - assertEquals(200, response.getStatus()); - assertEquals("forwarded to failed", "failed3.jsp", response.getForwardedUrl()); - assertTrue("Exception exposed", request.getAttribute("exception") instanceof ServletException); - } - - public void testSimpleMappingExceptionResolverWithAllHandlers1() throws Exception { - MockHttpServletRequest request = new MockHttpServletRequest(getServletContext(), "GET", "/loc.do"); - request.addPreferredLocale(Locale.CANADA); - request.addUserRole("role1"); - request.addParameter("access", "yes"); - MockHttpServletResponse response = new MockHttpServletResponse(); - complexDispatcherServlet.service(request, response); - assertEquals(500, response.getStatus()); - assertEquals("forwarded to failed", "failed1.jsp", response.getForwardedUrl()); - assertTrue("Exception exposed", request.getAttribute("exception") instanceof IllegalAccessException); - } - - public void testSimpleMappingExceptionResolverWithAllHandlers2() throws Exception { - MockHttpServletRequest request = new MockHttpServletRequest(getServletContext(), "GET", "/loc.do"); - request.addPreferredLocale(Locale.CANADA); - request.addUserRole("role1"); - request.addParameter("servlet", "yes"); - MockHttpServletResponse response = new MockHttpServletResponse(); - complexDispatcherServlet.service(request, response); - assertEquals(500, response.getStatus()); - assertEquals("forwarded to failed", "failed1.jsp", response.getForwardedUrl()); - assertTrue("Exception exposed", request.getAttribute("exception") instanceof ServletException); - } - - public void testSimpleMappingExceptionResolverWithDefaultErrorView() throws Exception { - MockHttpServletRequest request = new MockHttpServletRequest(getServletContext(), "GET", "/locale.do"); - request.addPreferredLocale(Locale.CANADA); - request.addUserRole("role1"); - request.addParameter("exception", "yes"); - MockHttpServletResponse response = new MockHttpServletResponse(); - complexDispatcherServlet.service(request, response); - assertEquals(200, response.getStatus()); - assertEquals("forwarded to failed", "failed0.jsp", response.getForwardedUrl()); - assertTrue("Exception exposed", request.getAttribute("exception").getClass().equals(RuntimeException.class)); - } - - public void testLocaleChangeInterceptor1() throws Exception { - MockHttpServletRequest request = new MockHttpServletRequest(getServletContext(), "GET", "/locale.do"); - request.addPreferredLocale(Locale.GERMAN); - request.addUserRole("role2"); - request.addParameter("locale", "en"); - MockHttpServletResponse response = new MockHttpServletResponse(); - complexDispatcherServlet.service(request, response); - assertEquals(200, response.getStatus()); - assertEquals("forwarded to failed", "failed0.jsp", response.getForwardedUrl()); - assertTrue("Exception exposed", request.getAttribute("exception").getClass().equals(ServletException.class)); - } - - public void testLocaleChangeInterceptor2() throws Exception { - MockHttpServletRequest request = new MockHttpServletRequest(getServletContext(), "GET", "/locale.do"); - request.addPreferredLocale(Locale.GERMAN); - request.addUserRole("role2"); - request.addParameter("locale", "en"); - request.addParameter("locale2", "en_CA"); - MockHttpServletResponse response = new MockHttpServletResponse(); - complexDispatcherServlet.service(request, response); - assertTrue("Not forwarded", response.getForwardedUrl() == null); - } - - public void testThemeChangeInterceptor1() throws Exception { - MockHttpServletRequest request = new MockHttpServletRequest(getServletContext(), "GET", "/locale.do"); - request.addPreferredLocale(Locale.CANADA); - request.addUserRole("role1"); - request.addParameter("theme", "mytheme"); - MockHttpServletResponse response = new MockHttpServletResponse(); - complexDispatcherServlet.service(request, response); - assertEquals(200, response.getStatus()); - assertEquals("forwarded to failed", "failed0.jsp", response.getForwardedUrl()); - assertTrue("Exception exposed", request.getAttribute("exception").getClass().equals(ServletException.class)); - } - - public void testThemeChangeInterceptor2() throws Exception { - MockHttpServletRequest request = new MockHttpServletRequest(getServletContext(), "GET", "/locale.do"); - request.addPreferredLocale(Locale.CANADA); - request.addUserRole("role1"); - request.addParameter("theme", "mytheme"); - request.addParameter("theme2", "theme"); - MockHttpServletResponse response = new MockHttpServletResponse(); - try { - complexDispatcherServlet.service(request, response); - assertTrue("Not forwarded", response.getForwardedUrl() == null); - } - catch (ServletException ex) { - fail("Should not have thrown ServletException: " + ex.getMessage()); - } - } - - public void testNotAuthorized() throws Exception { - MockHttpServletRequest request = new MockHttpServletRequest(getServletContext(), "GET", "/locale.do"); - request.addPreferredLocale(Locale.CANADA); - MockHttpServletResponse response = new MockHttpServletResponse(); - try { - complexDispatcherServlet.service(request, response); - assertTrue("Correct response", response.getStatus() == HttpServletResponse.SC_FORBIDDEN); - } - catch (ServletException ex) { - fail("Should not have thrown ServletException: " + ex.getMessage()); - } - } - - public void testHeadMethodWithExplicitHandling() throws Exception { - MockHttpServletRequest request = new MockHttpServletRequest(getServletContext(), "HEAD", "/head.do"); - MockHttpServletResponse response = new MockHttpServletResponse(); - complexDispatcherServlet.service(request, response); - assertEquals(5, response.getContentLength()); - - request = new MockHttpServletRequest(getServletContext(), "GET", "/head.do"); - response = new MockHttpServletResponse(); - complexDispatcherServlet.service(request, response); - assertEquals("", response.getContentAsString()); - } - - public void testHeadMethodWithNoBodyResponse() throws Exception { - MockHttpServletRequest request = new MockHttpServletRequest(getServletContext(), "HEAD", "/body.do"); - MockHttpServletResponse response = new MockHttpServletResponse(); - complexDispatcherServlet.service(request, response); - assertEquals(4, response.getContentLength()); - - request = new MockHttpServletRequest(getServletContext(), "GET", "/body.do"); - response = new MockHttpServletResponse(); - complexDispatcherServlet.service(request, response); - assertEquals("body", response.getContentAsString()); - } - - public void testNotDetectAllHandlerMappings() throws ServletException, IOException { - DispatcherServlet complexDispatcherServlet = new DispatcherServlet(); - complexDispatcherServlet.setContextClass(ComplexWebApplicationContext.class); - complexDispatcherServlet.setNamespace("test"); - complexDispatcherServlet.setDetectAllHandlerMappings(false); - complexDispatcherServlet.init(new MockServletConfig(getServletContext(), "complex")); - - MockHttpServletRequest request = new MockHttpServletRequest(getServletContext(), "GET", "/unknown.do"); - MockHttpServletResponse response = new MockHttpServletResponse(); - complexDispatcherServlet.service(request, response); - assertTrue(response.getStatus() == HttpServletResponse.SC_NOT_FOUND); - } - - public void testHandlerNotMappedWithAutodetect() throws ServletException, IOException { - DispatcherServlet complexDispatcherServlet = new DispatcherServlet(); - // no parent - complexDispatcherServlet.setContextClass(ComplexWebApplicationContext.class); - complexDispatcherServlet.setNamespace("test"); - complexDispatcherServlet.init(new MockServletConfig(getServletContext(), "complex")); - - MockHttpServletRequest request = new MockHttpServletRequest(getServletContext(), "GET", - URL_KNOWN_ONLY_PARENT); - MockHttpServletResponse response = new MockHttpServletResponse(); - complexDispatcherServlet.service(request, response); - assertEquals(HttpServletResponse.SC_NOT_FOUND, response.getStatus()); - } - - public void testDetectHandlerMappingFromParent() throws ServletException, IOException { - // create a parent context that includes a mapping - StaticWebApplicationContext parent = new StaticWebApplicationContext(); - parent.setServletContext(servletConfig.getServletContext()); - parent.registerSingleton("parentHandler", ControllerFromParent.class, new MutablePropertyValues()); - - MutablePropertyValues pvs = new MutablePropertyValues(); - pvs.addPropertyValue(new PropertyValue("mappings", URL_KNOWN_ONLY_PARENT + "=parentHandler")); - - parent.registerSingleton("parentMapping", SimpleUrlHandlerMapping.class, pvs); - parent.refresh(); - - DispatcherServlet complexDispatcherServlet = new DispatcherServlet(); - // will have parent - complexDispatcherServlet.setContextClass(ComplexWebApplicationContext.class); - complexDispatcherServlet.setNamespace("test"); - - ServletConfig config = new MockServletConfig(getServletContext(), "complex"); - config.getServletContext().setAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, parent); - complexDispatcherServlet.init(config); - - MockHttpServletRequest request = new MockHttpServletRequest(getServletContext(), "GET", - URL_KNOWN_ONLY_PARENT); - MockHttpServletResponse response = new MockHttpServletResponse(); - complexDispatcherServlet.service(request, response); - - assertFalse("Matched through parent controller/handler pair: not response=" + response.getStatus(), - response.getStatus() == HttpServletResponse.SC_NOT_FOUND); - } - - public void testDetectAllHandlerAdapters() throws ServletException, IOException { - DispatcherServlet complexDispatcherServlet = new DispatcherServlet(); - complexDispatcherServlet.setContextClass(ComplexWebApplicationContext.class); - complexDispatcherServlet.setNamespace("test"); - complexDispatcherServlet.init(new MockServletConfig(getServletContext(), "complex")); - - MockHttpServletRequest request = new MockHttpServletRequest(getServletContext(), "GET", "/servlet.do"); - MockHttpServletResponse response = new MockHttpServletResponse(); - complexDispatcherServlet.service(request, response); - assertEquals("body", response.getContentAsString()); - - request = new MockHttpServletRequest(getServletContext(), "GET", "/form.do"); - response = new MockHttpServletResponse(); - complexDispatcherServlet.service(request, response); - assertTrue("forwarded to form", "myform.jsp".equals(response.getForwardedUrl())); - } - - public void testNotDetectAllHandlerAdapters() throws ServletException, IOException { - DispatcherServlet complexDispatcherServlet = new DispatcherServlet(); - complexDispatcherServlet.setContextClass(ComplexWebApplicationContext.class); - complexDispatcherServlet.setNamespace("test"); - complexDispatcherServlet.setDetectAllHandlerAdapters(false); - complexDispatcherServlet.init(new MockServletConfig(getServletContext(), "complex")); - - // only ServletHandlerAdapter with bean name "handlerAdapter" detected - MockHttpServletRequest request = new MockHttpServletRequest(getServletContext(), "GET", "/servlet.do"); - MockHttpServletResponse response = new MockHttpServletResponse(); - complexDispatcherServlet.service(request, response); - assertEquals("body", response.getContentAsString()); - - // SimpleControllerHandlerAdapter not detected - request = new MockHttpServletRequest(getServletContext(), "GET", "/form.do"); - response = new MockHttpServletResponse(); - complexDispatcherServlet.service(request, response); - assertEquals("forwarded to failed", "failed0.jsp", response.getForwardedUrl()); - assertTrue("Exception exposed", request.getAttribute("exception").getClass().equals(ServletException.class)); - } - - public void testNotDetectAllHandlerExceptionResolvers() throws ServletException, IOException { - DispatcherServlet complexDispatcherServlet = new DispatcherServlet(); - complexDispatcherServlet.setContextClass(ComplexWebApplicationContext.class); - complexDispatcherServlet.setNamespace("test"); - complexDispatcherServlet.setDetectAllHandlerExceptionResolvers(false); - complexDispatcherServlet.init(new MockServletConfig(getServletContext(), "complex")); - - MockHttpServletRequest request = new MockHttpServletRequest(getServletContext(), "GET", "/unknown.do"); - MockHttpServletResponse response = new MockHttpServletResponse(); - try { - complexDispatcherServlet.service(request, response); - fail("Should have thrown ServletException"); - } - catch (ServletException ex) { - // expected - assertTrue(ex.getMessage().indexOf("No adapter for handler") != -1); - } - } - - public void testNotDetectAllViewResolvers() throws ServletException, IOException { - DispatcherServlet complexDispatcherServlet = new DispatcherServlet(); - complexDispatcherServlet.setContextClass(ComplexWebApplicationContext.class); - complexDispatcherServlet.setNamespace("test"); - complexDispatcherServlet.setDetectAllViewResolvers(false); - complexDispatcherServlet.init(new MockServletConfig(getServletContext(), "complex")); - - MockHttpServletRequest request = new MockHttpServletRequest(getServletContext(), "GET", "/unknown.do"); - MockHttpServletResponse response = new MockHttpServletResponse(); - try { - complexDispatcherServlet.service(request, response); - fail("Should have thrown ServletException"); - } - catch (ServletException ex) { - // expected - assertTrue(ex.getMessage().indexOf("failed0") != -1); - } - } - - public void testCleanupAfterIncludeWithRemove() throws ServletException, IOException { - MockHttpServletRequest request = new MockHttpServletRequest(getServletContext(), "GET", "/main.do"); - MockHttpServletResponse response = new MockHttpServletResponse(); - - request.setAttribute("test1", "value1"); - request.setAttribute("test2", "value2"); - WebApplicationContext wac = new StaticWebApplicationContext(); - request.setAttribute(DispatcherServlet.WEB_APPLICATION_CONTEXT_ATTRIBUTE, wac); - - request.setAttribute(WebUtils.INCLUDE_REQUEST_URI_ATTRIBUTE, "/form.do"); - simpleDispatcherServlet.service(request, response); - assertTrue("forwarded to form", "form".equals(response.getIncludedUrl())); - - assertEquals("value1", request.getAttribute("test1")); - assertEquals("value2", request.getAttribute("test2")); - assertEquals(wac, request.getAttribute(DispatcherServlet.WEB_APPLICATION_CONTEXT_ATTRIBUTE)); - assertNull(request.getAttribute(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE)); - assertNull(request.getAttribute("command")); - } - - public void testCleanupAfterIncludeWithRestore() throws ServletException, IOException { - MockHttpServletRequest request = new MockHttpServletRequest(getServletContext(), "GET", "/main.do"); - MockHttpServletResponse response = new MockHttpServletResponse(); - - request.setAttribute("test1", "value1"); - request.setAttribute("test2", "value2"); - WebApplicationContext wac = new StaticWebApplicationContext(); - request.setAttribute(DispatcherServlet.WEB_APPLICATION_CONTEXT_ATTRIBUTE, wac); - TestBean command = new TestBean(); - request.setAttribute("command", command); - - request.setAttribute(WebUtils.INCLUDE_REQUEST_URI_ATTRIBUTE, "/form.do"); - simpleDispatcherServlet.service(request, response); - assertTrue("forwarded to form", "form".equals(response.getIncludedUrl())); - - assertEquals("value1", request.getAttribute("test1")); - assertEquals("value2", request.getAttribute("test2")); - assertSame(wac, request.getAttribute(DispatcherServlet.WEB_APPLICATION_CONTEXT_ATTRIBUTE)); - assertSame(command, request.getAttribute("command")); - } - - public void testNoCleanupAfterInclude() throws ServletException, IOException { - MockHttpServletRequest request = new MockHttpServletRequest(getServletContext(), "GET", "/main.do"); - MockHttpServletResponse response = new MockHttpServletResponse(); - - request.setAttribute("test1", "value1"); - request.setAttribute("test2", "value2"); - WebApplicationContext wac = new StaticWebApplicationContext(); - request.setAttribute(DispatcherServlet.WEB_APPLICATION_CONTEXT_ATTRIBUTE, wac); - TestBean command = new TestBean(); - request.setAttribute("command", command); - - request.setAttribute(WebUtils.INCLUDE_REQUEST_URI_ATTRIBUTE, "/form.do"); - simpleDispatcherServlet.setCleanupAfterInclude(false); - simpleDispatcherServlet.service(request, response); - assertTrue("forwarded to form", "form".equals(response.getIncludedUrl())); - - assertEquals("value1", request.getAttribute("test1")); - assertEquals("value2", request.getAttribute("test2")); - assertSame(wac, request.getAttribute(DispatcherServlet.WEB_APPLICATION_CONTEXT_ATTRIBUTE)); - assertNotSame(command, request.getAttribute("command")); - } - - public void testServletHandlerAdapter() throws Exception { - MockHttpServletRequest request = new MockHttpServletRequest(getServletContext(), "GET", "/servlet.do"); - MockHttpServletResponse response = new MockHttpServletResponse(); - complexDispatcherServlet.service(request, response); - assertEquals("body", response.getContentAsString()); - - Servlet myServlet = (Servlet) complexDispatcherServlet.getWebApplicationContext().getBean("myServlet"); - assertEquals("complex", myServlet.getServletConfig().getServletName()); - assertEquals(getServletContext(), myServlet.getServletConfig().getServletContext()); - complexDispatcherServlet.destroy(); - assertNull(myServlet.getServletConfig()); - } - - public void testThrowawayController() throws Exception { - SimpleWebApplicationContext.TestThrowawayController.counter = 0; - - MockHttpServletRequest request = new MockHttpServletRequest(getServletContext(), "GET", "/throwaway.do"); - request.addParameter("myInt", "5"); - MockHttpServletResponse response = new MockHttpServletResponse(); - - simpleDispatcherServlet.service(request, response); - assertTrue("Correct response", "view5".equals(response.getForwardedUrl())); - assertEquals(1, SimpleWebApplicationContext.TestThrowawayController.counter); - - request = new MockHttpServletRequest(getServletContext(), "GET", "/throwaway.do"); - request.addParameter("myInt", "5"); - response = new MockHttpServletResponse(); - - simpleDispatcherServlet.service(request, response); - assertTrue("Correct response", "view5".equals(response.getForwardedUrl())); - assertEquals(2, SimpleWebApplicationContext.TestThrowawayController.counter); - } - - public void testThrowawayControllerWithBindingFailure() throws Exception { - SimpleWebApplicationContext.TestThrowawayController.counter = 0; - MockHttpServletRequest request = new MockHttpServletRequest(getServletContext(), "GET", "/throwaway.do"); - request.addParameter("myInt", "5x"); - MockHttpServletResponse response = new MockHttpServletResponse(); - - try { - simpleDispatcherServlet.service(request, response); - fail("Should have thrown ServletException"); - } - catch (ServletException ex) { - // expected - assertTrue(ex.getRootCause() instanceof BindException); - assertEquals(1, SimpleWebApplicationContext.TestThrowawayController.counter); - } - } - - public void testWebApplicationContextLookup() { - MockServletContext servletContext = new MockServletContext(); - MockHttpServletRequest request = new MockHttpServletRequest(servletContext, "GET", "/invalid.do"); - - try { - RequestContextUtils.getWebApplicationContext(request); - fail("Should have thrown IllegalStateException"); - } - catch (IllegalStateException ex) { - // expected - } - - try { - RequestContextUtils.getWebApplicationContext(request, servletContext); - fail("Should have thrown IllegalStateException"); - } - catch (IllegalStateException ex) { - // expected - } - - servletContext.setAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, - new StaticWebApplicationContext()); - try { - RequestContextUtils.getWebApplicationContext(request, servletContext); - } - catch (IllegalStateException ex) { - fail("Should not have thrown IllegalStateException: " + ex.getMessage()); - } - } - - public void testWithNoView() throws Exception { - MockServletContext servletContext = new MockServletContext(); - MockHttpServletRequest request = new MockHttpServletRequest(servletContext, "GET", "/noview.do"); - MockHttpServletResponse response = new MockHttpServletResponse(); - - complexDispatcherServlet.service(request, response); - assertEquals("noview.jsp", response.getForwardedUrl()); - } - - public void testWithNoViewNested() throws Exception { - MockServletContext servletContext = new MockServletContext(); - MockHttpServletRequest request = new MockHttpServletRequest(servletContext, "GET", "/noview/simple.do"); - MockHttpServletResponse response = new MockHttpServletResponse(); - - complexDispatcherServlet.service(request, response); - assertEquals("noview/simple.jsp", response.getForwardedUrl()); - } - - public void testWithNoViewAndSamePath() throws Exception { - InternalResourceViewResolver vr = (InternalResourceViewResolver) - complexDispatcherServlet.getWebApplicationContext().getBean("viewResolver2"); - vr.setSuffix(""); - - MockServletContext servletContext = new MockServletContext(); - MockHttpServletRequest request = new MockHttpServletRequest(servletContext, "GET", "/noview"); - MockHttpServletResponse response = new MockHttpServletResponse(); - - try { - complexDispatcherServlet.service(request, response); - fail("Should have thrown ServletException"); - } - catch (ServletException ex) { - ex.printStackTrace(); - } - } - - public void testDispatcherServletRefresh() throws ServletException { - MockServletContext servletContext = new MockServletContext("org/springframework/web/context"); - DispatcherServlet servlet = new DispatcherServlet(); - - servlet.init(new MockServletConfig(servletContext, "empty")); - ServletContextAwareBean contextBean = (ServletContextAwareBean) - servlet.getWebApplicationContext().getBean("servletContextAwareBean"); - ServletConfigAwareBean configBean = (ServletConfigAwareBean) - servlet.getWebApplicationContext().getBean("servletConfigAwareBean"); - assertSame(servletContext, contextBean.getServletContext()); - assertSame(servlet.getServletConfig(), configBean.getServletConfig()); - MultipartResolver multipartResolver = servlet.getMultipartResolver(); - assertNotNull(multipartResolver); - - servlet.refresh(); - - ServletContextAwareBean contextBean2 = (ServletContextAwareBean) - servlet.getWebApplicationContext().getBean("servletContextAwareBean"); - ServletConfigAwareBean configBean2 = (ServletConfigAwareBean) - servlet.getWebApplicationContext().getBean("servletConfigAwareBean"); - assertSame(servletContext, contextBean2.getServletContext()); - assertSame(servlet.getServletConfig(), configBean2.getServletConfig()); - assertTrue(contextBean != contextBean2); - assertTrue(configBean != configBean2); - MultipartResolver multipartResolver2 = servlet.getMultipartResolver(); - assertTrue(multipartResolver != multipartResolver2); - - servlet.destroy(); - } - - public void testDispatcherServletContextRefresh() throws ServletException { - MockServletContext servletContext = new MockServletContext("org/springframework/web/context"); - DispatcherServlet servlet = new DispatcherServlet(); - - servlet.init(new MockServletConfig(servletContext, "empty")); - ServletContextAwareBean contextBean = (ServletContextAwareBean) - servlet.getWebApplicationContext().getBean("servletContextAwareBean"); - ServletConfigAwareBean configBean = (ServletConfigAwareBean) - servlet.getWebApplicationContext().getBean("servletConfigAwareBean"); - assertSame(servletContext, contextBean.getServletContext()); - assertSame(servlet.getServletConfig(), configBean.getServletConfig()); - MultipartResolver multipartResolver = servlet.getMultipartResolver(); - assertNotNull(multipartResolver); - - ((ConfigurableApplicationContext) servlet.getWebApplicationContext()).refresh(); - - ServletContextAwareBean contextBean2 = (ServletContextAwareBean) - servlet.getWebApplicationContext().getBean("servletContextAwareBean"); - ServletConfigAwareBean configBean2 = (ServletConfigAwareBean) - servlet.getWebApplicationContext().getBean("servletConfigAwareBean"); - assertSame(servletContext, contextBean2.getServletContext()); - assertSame(servlet.getServletConfig(), configBean2.getServletConfig()); - assertTrue(contextBean != contextBean2); - assertTrue(configBean != configBean2); - MultipartResolver multipartResolver2 = servlet.getMultipartResolver(); - assertTrue(multipartResolver != multipartResolver2); - - servlet.destroy(); - } - - - public static class ControllerFromParent implements Controller { - - public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { - return new ModelAndView(ControllerFromParent.class.getName()); - } - } - -} diff --git a/org.springframework.testsuite/src/test/java/org/springframework/web/servlet/theme/ThemeResolverTests.java b/org.springframework.testsuite/src/test/java/org/springframework/web/servlet/theme/ThemeResolverTests.java deleted file mode 100644 index c804f26c9c9..00000000000 --- a/org.springframework.testsuite/src/test/java/org/springframework/web/servlet/theme/ThemeResolverTests.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright 2002-2005 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.web.servlet.theme; - -import junit.framework.TestCase; - -import org.springframework.mock.web.MockHttpServletRequest; -import org.springframework.mock.web.MockHttpServletResponse; -import org.springframework.mock.web.MockServletContext; -import org.springframework.web.servlet.ThemeResolver; - -/** - * @author Jean-Pierre Pawlak - * @author Juergen Hoeller - * @since 19.06.2003 - */ -public class ThemeResolverTests extends TestCase { - - private static final String TEST_THEME_NAME = "test.theme"; - private static final String DEFAULT_TEST_THEME_NAME = "default.theme"; - - private void internalTest(ThemeResolver themeResolver, boolean shouldSet, String defaultName) { - // create mocks - MockServletContext context = new MockServletContext(); - MockHttpServletRequest request = new MockHttpServletRequest(context); - MockHttpServletResponse response = new MockHttpServletResponse(); - // check original theme - String themeName = themeResolver.resolveThemeName(request); - assertEquals(themeName, defaultName); - // set new theme name - try { - themeResolver.setThemeName(request, response, TEST_THEME_NAME); - if (!shouldSet) - fail("should not be able to set Theme name"); - // check new theme namelocale - themeName = themeResolver.resolveThemeName(request); - assertEquals(themeName, TEST_THEME_NAME); - themeResolver.setThemeName(request, response, null); - themeName = themeResolver.resolveThemeName(request); - assertEquals(themeName, defaultName); - } - catch (UnsupportedOperationException ex) { - if (shouldSet) - fail("should be able to set Theme name"); - } - } - - public void testFixedThemeResolver() { - internalTest(new FixedThemeResolver(), false, AbstractThemeResolver.ORIGINAL_DEFAULT_THEME_NAME); - } - - public void testCookieThemeResolver() { - internalTest(new CookieThemeResolver(), true, AbstractThemeResolver.ORIGINAL_DEFAULT_THEME_NAME); - } - - public void testSessionThemeResolver() { - internalTest(new SessionThemeResolver(), true,AbstractThemeResolver.ORIGINAL_DEFAULT_THEME_NAME); - } - - public void testSessionThemeResolverWithDefault() { - SessionThemeResolver tr = new SessionThemeResolver(); - tr.setDefaultThemeName(DEFAULT_TEST_THEME_NAME); - internalTest(tr, true, DEFAULT_TEST_THEME_NAME); - } - -} diff --git a/org.springframework.web.servlet/src/test/resources/org/springframework/web/context/WEB-INF/empty-servlet.xml b/org.springframework.web.servlet/src/test/resources/org/springframework/web/context/WEB-INF/empty-servlet.xml new file mode 100644 index 00000000000..b49584e11dd --- /dev/null +++ b/org.springframework.web.servlet/src/test/resources/org/springframework/web/context/WEB-INF/empty-servlet.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/org.springframework.web.servlet/src/test/resources/org/springframework/web/context/WEB-INF/sessionContext.xml b/org.springframework.web.servlet/src/test/resources/org/springframework/web/context/WEB-INF/sessionContext.xml new file mode 100644 index 00000000000..7da590d1f21 --- /dev/null +++ b/org.springframework.web.servlet/src/test/resources/org/springframework/web/context/WEB-INF/sessionContext.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/org.springframework.web.servlet/src/test/resources/org/springframework/web/servlet/complexviews.properties b/org.springframework.web.servlet/src/test/resources/org/springframework/web/servlet/complexviews.properties new file mode 100644 index 00000000000..6917be21627 --- /dev/null +++ b/org.springframework.web.servlet/src/test/resources/org/springframework/web/servlet/complexviews.properties @@ -0,0 +1,3 @@ +form.(class)=org.springframework.web.servlet.view.InternalResourceView +form.requestContextAttribute=rc +form.url=myform.jsp