url bugfixes
This commit is contained in:
@@ -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 -->
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user