url bugfixes

This commit is contained in:
Keith Donald
2008-02-26 19:45:51 +00:00
parent 7181be3fc8
commit fc39763ec0
5 changed files with 37 additions and 20 deletions

View File

@@ -28,6 +28,18 @@
<param-name>facelets.BUILD_BEFORE_RESTORE</param-name>
<param-value>false</param-value>
</context-param>
<servlet>
<servlet-name>Resources Servlet</servlet-name>
<servlet-class>org.springframework.faces.ui.resource.ResourceServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<!-- Map all *.spring requests to the Web Servlet for handling -->
<servlet-mapping>
<servlet-name>Resources Servlet</servlet-name>
<url-pattern>/resources/*</url-pattern>
</servlet-mapping>
<!-- Here so the JSF implementation can initialize, not used at runtime -->
<servlet>
@@ -50,7 +62,7 @@
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/config/web-application-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
<load-on-startup>2</load-on-startup>
</servlet>
<!-- Map all *.spring requests to the Web Servlet for handling -->

View File

@@ -6,12 +6,12 @@
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Spring Faces: Hotel Booking Sample Application</title>
<style type="text/css" media="screen">
@import url("spring/resources/css-framework/css/tools.css");
@import url("spring/resources/css-framework/css/typo.css");
@import url("spring/resources/css-framework/css/forms.css");
@import url("spring/resources/css-framework/css/layout-navtop-localleft.css");
@import url("spring/resources/css-framework/css/layout.css");
@import url("spring/resources/css/booking.css");
@import url("/resources/css-framework/css/tools.css");
@import url("/resources/css-framework/css/typo.css");
@import url("/resources/css-framework/css/forms.css");
@import url("/resources/css-framework/css/layout-navtop-localleft.css");
@import url("/resources/css-framework/css/layout.css");
@import url("/resources/css/booking.css");
</style>
</head>
<body class="spring">

View File

@@ -6,12 +6,12 @@
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Spring Faces: Hotel Booking Sample Application</title>
<style type="text/css" media="screen">
@import url("${facesContext.externalContext.requestContextPath}/spring/resources/css-framework/css/tools.css");
@import url("${facesContext.externalContext.requestContextPath}/spring/resources/css-framework/css/typo.css");
@import url("${facesContext.externalContext.requestContextPath}/spring/resources/css-framework/css/forms.css");
@import url("${facesContext.externalContext.requestContextPath}/spring/resources/css-framework/css/layout-navtop-localleft.css");
@import url("${facesContext.externalContext.requestContextPath}/spring/resources/css-framework/css/layout.css");
@import url("${facesContext.externalContext.requestContextPath}/spring/resources/css/booking.css");
@import url("${facesContext.externalContext.requestContextPath}/resources/css-framework/css/tools.css");
@import url("${facesContext.externalContext.requestContextPath}/resources/css-framework/css/typo.css");
@import url("${facesContext.externalContext.requestContextPath}/resources/css-framework/css/forms.css");
@import url("${facesContext.externalContext.requestContextPath}/resources/css-framework/css/layout-navtop-localleft.css");
@import url("${facesContext.externalContext.requestContextPath}/resources/css-framework/css/layout.css");
@import url("${facesContext.externalContext.requestContextPath}/resources/css/booking.css");
</style>
<ui:insert name="headIncludes"/>
</head>

View File

@@ -33,10 +33,7 @@ public class DefaultFlowUrlHandler implements FlowUrlHandler {
public String createFlowExecutionUrl(String flowId, String flowExecutionKey, HttpServletRequest request) {
StringBuffer url = new StringBuffer();
url.append(request.getContextPath());
url.append(request.getServletPath());
url.append('/');
url.append(encode(flowId));
url.append(request.getRequestURI());
url.append('?');
appendQueryParameter(url, "execution", flowExecutionKey);
return url.toString();
@@ -44,8 +41,7 @@ public class DefaultFlowUrlHandler implements FlowUrlHandler {
public String createFlowDefinitionUrl(String flowId, AttributeMap input, HttpServletRequest request) {
StringBuffer url = new StringBuffer();
url.append(request.getContextPath());
url.append(request.getServletPath());
url.append(getFlowHandlerUri(request));
url.append('/');
url.append(encode(flowId));
if (input != null && !input.isEmpty()) {
@@ -84,4 +80,10 @@ public class DefaultFlowUrlHandler implements FlowUrlHandler {
}
}
private String getFlowHandlerUri(HttpServletRequest request) {
String flowRequestUri = request.getRequestURI();
int lastSlash = flowRequestUri.lastIndexOf('/');
return flowRequestUri.substring(0, lastSlash);
}
}

View File

@@ -5,7 +5,6 @@ import java.util.LinkedHashMap;
import junit.framework.TestCase;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.webflow.context.servlet.DefaultFlowUrlHandler;
import org.springframework.webflow.core.collection.CollectionUtils;
import org.springframework.webflow.core.collection.LocalAttributeMap;
@@ -34,6 +33,7 @@ public class DefaultFlowUrlHandlerTests extends TestCase {
request.setContextPath("/springtravel");
request.setServletPath("/app");
request.setPathInfo("/foo");
request.setRequestURI("/springtravel/app/foo");
String url = urlHandler.createFlowDefinitionUrl("bookHotel", null, request);
assertEquals("/springtravel/app/bookHotel", url);
}
@@ -42,6 +42,7 @@ public class DefaultFlowUrlHandlerTests extends TestCase {
request.setContextPath("/springtravel");
request.setServletPath("/app");
request.setPathInfo("/foo");
request.setRequestURI("/springtravel/app/foo");
String url = urlHandler.createFlowDefinitionUrl("bookHotel", CollectionUtils.EMPTY_ATTRIBUTE_MAP, request);
assertEquals("/springtravel/app/bookHotel", url);
}
@@ -50,6 +51,7 @@ public class DefaultFlowUrlHandlerTests extends TestCase {
request.setContextPath("/springtravel");
request.setServletPath("/app");
request.setPathInfo("/foo");
request.setRequestURI("/springtravel/app/foo");
LocalAttributeMap input = new LocalAttributeMap(new LinkedHashMap());
input.put("foo", "bar");
input.put("bar", "needs encoding");
@@ -63,6 +65,7 @@ public class DefaultFlowUrlHandlerTests extends TestCase {
request.setContextPath("/springtravel");
request.setServletPath("/app");
request.setPathInfo("/foo");
request.setRequestURI("/springtravel/app/foo");
String url = urlHandler.createFlowExecutionUrl("foo", "12345", request);
assertEquals("/springtravel/app/foo?execution=12345", url);
}