次のページがあります。
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets">
<h:head>
<title>Fire - Registration</title>
</h:head>
<h:body>
<f:view>
<f:event type="preRenderView" listener="#{confirmPasswordResetBean.bindSessionKey()}"/>
</f:view>
<p:growl id="growl" showDetail="true" life="5000" />
<h:form>
<p:panel header="Select your new password">
<h:panelGrid columns="2" cellpadding="5">
<p:outputLabel for="newPassword" value="Type your new password"/>
<p:password id="newPassword"
value="#{confirmPasswordResetBean.firstPassword}"
feedback="true"/>
<p:outputLabel for="retypedPassword" value="Retype your password"/>
<p:password id="retypedPassword"
value="#{confirmPasswordResetBean.secondPassword}"/>
</h:panelGrid>
<p:commandButton id="confirmButton"
value="reset"
action="#{confirmPasswordResetBean.doResetPassword()}"
update=":growl"/>
</p:panel>
</h:form>
</h:body>
上記で使用されているバッキング Bean は RequestScoped であり、ページ自体は 1 つのパラメーター (sessionKey) を取ります...私がやりたいことは: 1. sessionKey をバッキング Bean の変数にバインドします。これは簡単です。2. クライアントが commandButton を押したときに、同じ Bean で専用ロジックを実行するときに、sessionKey のバインドされた値を使用します。
問題は、ボタンを押すと新しいリクエストが開始され、現在の Bean (バインドされた値を持つ) と外部ページ コンテキストの両方が無効になることです...したがって、いずれかの Bean から sessionKey を取得する手段がすべて失われますまたはページパラメータ...どうすればこれを解決できますか? 私はWebプログラミングとJSFの両方に比較的慣れていないので、これに明らかな答えがある場合はご容赦ください。