2011-11-02 40 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