呼び出されたメソッドでは、preRenderView
いくつかの検証が実行され、失敗した場合はリダイレクトが発生します。
しかし、私はIllegalStateException
Information: Exception when handling error trying to reset the response.
java.lang.IllegalStateException
at org.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFacade.java:524)
at com.sun.faces.context.ExternalContextImpl.redirect(ExternalContextImpl.java:602)
at package.FacesContextUtils.redirect(FacesContextUtils.java:581)
コードは次のとおりです。
public void initPreRenderView(final String value) throws DatabaseException
{
if (value == null)
{
FacesContextUtils.addMessageInvalidLinkRedirect(context, url);
return;
}
}
基本的に、ユーティリティ関数は次のもので構成されます。
public static void addMessageInvalidLinkRedirect(FacesContext context, String url)
{
context.addMessage(null, new FacesMessage("Invalid link..."));
try
{
context.getExternalContext().redirect(url);
}
catch (final IOException e)
{
// add error message
}
}
このトピックに関する多くの回答は、redirection ステートメントの後に return を追加することを想定しています。これは preRenderView メソッドで行いました。
編集:
リダイレクトが行われ、すべてが期待どおりに機能します。このエラーメッセージを取り除きたいだけです。