我正在使用PrettyFaces 3.3.0 我想从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调用redirect方法,mappingId(requestURI?)是什么以及Map<String, String[]>params
的值是什么,我需要一个小例子来调用上面的方法从servlet?
以及如何使用prettyfaces从servlet转发,请指教。
答案 0 :(得分:2)
“String mappingId”是PrettyFaces配置中url-mapping的ID。每个url-mapping都应该有一个ID(在XML或Annotations配置中。)
Map params是名称 - 值对中的参数列表,用于根据id指定的URL映射模式生成出站链接。
例如:
<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