2011-11-02 55 views
0

我使用PrettyFaces 3.3.0 ,我想進行自定義和重定向從一個servlet重定向從PrettyFaces一個servlet前進/

我發現他們的文檔下面的代碼轉發:

public class CustomRedirector 
{ 
    public void redirect(HttpServletRequest request, HttpServletResponse response, 
          String mappingId, Map<String, String[]>params) 
    { 
     PrettyContext context = PrettyContext.getCurrentInstance(request); 
     PrettyURLBuilder builder = new PrettyURLBuilder(); 

     URLMapping mapping = context.getConfig().getMappingById(mappingId); 
     String targetURL = builder.build(mapping, params); 

     targetURL = response.encodeRedirectURL(targetURL); 
     response.sendRedirect(targetURL); 
    }  
} 

我想知道如何從servlet調用重定向方法,mappingId(requestURI?)和Map<String, String[]>params的值是什麼,我需要一個小例子來從servlet調用上述方法?

以及如何做servlet與美孚轉發,請告知。

回答

2

「String mappingId」是PrettyFaces配置中的url映射的ID。每個URL映射都應該有一個ID(在XML或註釋配置中)。

Map params是名稱 - 值對中的參數列表,用於根據URL-由id指定的映射模式。

例如:

<url-mapping id="foo"> 
    <pattern value="/#{cat}/#{item}" /> 
    <view-id value="/bar.xhtml" /> 
</url-mapping> 

所以,你會打電話給你的方法,像這樣:

Map<String, String[]> map = new HashMap<>(); 
map.put("cat", "blah"); 
map.put("item", "45"); 
new CustomRedirector.redirect(request, response, "foo", map); 

你會被重定向到:

/blah/45