0

PrettyFaces 3.3.0を使用していて、サーブレットからカスタムリダイレクトおよび転送を行いたい

私は彼らのドキュメントで次のコードを見つけました:

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);
    }       
}

サーブレットからリダイレクトメソッドを呼び出す方法、mappingId(requestURI?)、の値はどうなるのか疑問に思っていました。Map<String, String[]>paramsサーブレットから上記のメソッドを呼び出す小さな例が必要ですか?

また、prettyfacesを使用してサーブレットから転送する方法についてもアドバイスしてください。

4

1 に答える 1

2

「StringmappingId」は、PrettyFaces構成のURLマッピングのIDです。各URLマッピングにはIDが必要です(XMLまたは注釈構成のいずれか)。

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
于 2011-11-25T19:39:18.643 に答える