【问题标题】:Redirect/Forward from a servlet with PrettyFaces使用 PrettyFaces 从 servlet 重定向/转发
【发布时间】:2011-12-20 04:29:25
【问题描述】:

我正在使用 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 调用重定向方法,mappingId (requestURI?)是什么以及Map&lt;String, String[]&gt;params 的值是什么,我需要一个小例子来调用上述方法小服务程序?

以及如何用漂亮的面孔从servlet进行转发,请指教。

【问题讨论】:

    标签: jsf servlets prettyfaces


    【解决方案1】:

    “String mappingId”是 PrettyFaces 配置中 url 映射的 ID。每个 url-mapping 都应该有一个 ID(在 XML 或 Annotations 配置中)。

    Map 参数是名称-值对中的参数列表,用于根据 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
    

    【讨论】:

      猜你喜欢
      • 2013-11-11
      • 1970-01-01
      • 1970-01-01
      • 2012-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-14
      • 2012-06-13
      相关资源
      最近更新 更多