c:if
の値がtrueに設定されている場合、リダイレクトされます。リダイレクトの場合、c:redirect url="url"
を使用しています。しかし、それは私をページにリダイレクトしていません。 f
はJSFコアタグライブラリであり、c
はJSTLコアタグライブラリである、jstl coreを使用したリダイレクト
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<f:view>
<c:if test="#{user.loggedIn}">
#{user.loggedIn}
<c:redirect url="index.xhtml"></c:redirect>
</c:if>
Hello #{user.name}
<h:form>
<h:commandButton value="Logout" action="#{user.logout}" />
</h:form>
</f:view>
ここ
、h
はJSFのHTML Taglibのを表す:ここでは、コードです。
「」を使用すると例外がスローされません。私の質問は、なぜそれが ''で指定されたURLに私をリダイレクトしないのですか?応答の意味は何かがコミットされている可能性がありますか? –
Logan
レスポンスのヘッダがクライアント(webbrowser)にすでに送信されている場合、レスポンスがコミットされます。リダイレクトにはコミットされていない応答が必要です。クライアントに指定された場所(つまりリダイレクト)で新しいGET要求を送信するように指示するには、 'Location'ヘッダを設定する必要があるからです。 – BalusC