我正在處理Spring MVC + Web Flow Web應用程序。我已將/home
映射到MVC控制器,並將/test
映射到流量控制器。要從我嘗試使用的網址中刪除/app
Url Rewrite Filter
。 MVC控制器(@Controller)中的映射適用於: http://localhost:8080/spring/home
- >呈現home
視圖。Spring Web Flow和Url重寫篩選器 - 清除URL
但是,當一個請求到達一個Webflow控制器什麼是錯導致Error 404
: http://localhost:8080/spring/test
- >重定向到http://localhost:8080/spring/app/test?execution=e1s1
- >page not found
。
如何從網址中刪除/app
並讓所有內容都正常工作?
urlrewrite.xml:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.0//EN" "urlrewrite3.0.dtd">
<urlrewrite default-match-type="wildcard">
<!-- to remove /app -->
<rule>
<from>/**</from>
<to>/app/$1</to>
</rule>
<outbound-rule>
<from>/app/**</from>
<to>/$1</to>
</outbound-rule>
</urlrewrite>
分派器servlet映射:
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/app/*</url-pattern>
</servlet-mapping>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
簡單控制器:
@Controller
public class MainController {
@RequestMapping(value={"/home", "/"})
public String index(Model model) {
return "index";
}
}
個一些日誌:
DEBUG [FlowHandlerMapping:108] : Mapping request with URI '/spring/app/test' to flow with id 'test'
DEBUG [FlowExecutorImpl:135] : Launching new execution of flow 'test' with input null
DEBUG [FlowDefinitionRegistryImpl:59] : Getting FlowDefinition with id 'test'
DEBUG [FlowExecutionImplFactory:78] : Creating new execution of 'test'
...
DEBUG [FlowExecutionImpl:417] : Assigned key e2s1
DEBUG [FlowHandlerAdapter:367] : Sending flow execution redirect to '/spring/app/test?execution=e2s1'
DEBUG [DispatcherServlet:824] : Null ModelAndView returned to DispatcherServlet with name 'spring': assuming HandlerAdapter completed request handling
DEBUG [DispatcherServlet:674] : Successfully completed request
DEBUG [DispatcherServlet:693] : DispatcherServlet with name 'spring' processing GET request for [/spring/app/app/test]
DEBUG [FlowHandlerMapping:114] : No flow mapping found for request with URI '/spring/app/app/test'
WARN [PageNotFound:947] : No mapping found for HTTP request with URI [/spring/app/app/test] in DispatcherServlet with name 'spring'
完全不相關的答案。他沒有讀過這個問題。 – 2014-10-19 01:48:32