アプリケーションでは検索が可能で、結果は他のページに表示されます特定のsessionScope変数を使用したままにし、他のsessionScope変数を削除する方法はありますか?
たとえば、search.xspはユーザーが検索する情報を入力するためのもので、searchresult.xspは検索結果の表示用です。
search.xspとsearchresult.xspでは、sessionScope変数を使用して検索機能を実行します。
検索機能は、次のようなものです:searchresult.xspで
var qstring= "";
if ((sessionScope.ItemSearch != null && sessionScope.ItemSearch != "")||(sessionScope.CategorySearch != null && sessionScope.CategorySearch != "")|| (sessionScope.LocationSearch != null && sessionScope.LocationSearch !=""))
{
qstring = " FIELD Item contains " + sessionScope.ItemSearch +
" | FIELD Category contains " + sessionScope.CategorySearch +
" | FIELD Location contains " + sessionScope.LocationSearch
}
return qstring;
、私はsearch.xspに戻ります戻るボタンを追加します。 ユーザーの要件を読みました。ユーザーが戻るボタンをクリックすると、ユーザーはsearch.xspにリダイレクトされますが、以前の選択はクリアされます。
sessionScopeと変数をクリアするには、私はafterPageLoadイベントでsearch.xspにコードを適用 https://openntf.org/XSnippets.nsf/snippet.xsp?id=clear-session-current-nsf
clearMap(sessionScope);
//facesContext.getExternalContext().redirect("./?logout");
// Clear Map function
function clearMap(map:Map){ // Get iterator for the keys
var iterator = map.keySet().iterator(); // Remove all items
while(iterator.hasNext()){
map.remove(iterator.next());
}
}
このウェブサイトから、このコードを見つけた私は、[戻る]ボタンをクリックしたときので、search.xspはなります以前の検索選択を削除します。
ここは私の質問です。
すべてのページの上部には、ユーザーのログインロールを示す計算フィールドがあります。この理由は、ユーザーの役割を示す必要があるのは、ユーザーがアプリケーション内で複数の役割を果たすことで、ユーザーがログインする役割をユーザーが選択できるように別のページを作成したためです。私は、ユーザーの役割を示すために、sessionScopeと変数を使用しているため、ユーザはsearch.xspに行く場合は、検索機能を実行すると、ユーザーここ
は、その計算されたフィールドのコード
var selectrole =sessionScope.role;
if(selectrole == "Common User")
{
return "You logged in as Common User role";
}
else if(selectrole == "Senior User")
{
return "You logged in as Senior User role";
}
else if(selectrole == "Manager")
{
return "You logged in as Manager role";
}
else if(selectrole == "Administrator")
{
return "You logged in as Administrator role";
}
else
{
}
ですsearchresult.xspの「戻る」ボタンをクリックします。 clear sessionScope関数は、sessionScope.roleの値も削除します。
私は明確な特定のsessionScopeと変数について、インターネット上で検索が、明確なsessionScopeと変数が正常に動作しますので、それはこの問題
に多くの情報をいないようだ、私は特定のsessionScopeと変数を削除しようとしました。冒頭
clearMap(sessionScope.ItemSearch);
//facesContext.getExternalContext().redirect("./?logout");
// Clear Map function
function clearMap(map:Map){ // Get iterator for the keys
var iterator = map.keySet().iterator(); // Remove all items
while(iterator.hasNext()){
map.remove(iterator.next());
}
}
、私は特定のsessionScopeと変数を削除することは困難であると思うし、その結果、私はエラーを取得することを私のためには驚くに当たりません。
特定のsessionScope変数を使用したままにし、他のsessionScope変数をクリアする方法はありますか?
この場合の方が良いでしょうか?
お気軽にご相談ください。
Paul Stephen WithersとKnut Herrmannの答えに感謝したいと思います。私は1つの答えしか受け入れることができませんが、私のアプリケーションに合っているので、私は両方の回答者をupvoteします。 – beginner
sessionScopeについて、私は、派生したアプリケーションで多くのsessionScope変数を使用する必要があり、セッションのタイムアウトまでそれらの値を保持する必要があり、そのうちのいくつかをクリアする必要があるという強い思いがありますすぐに。それでは、xpage開発でうまくいくのですか?私はサーバーがコードを実行するためにもっと多くのリソースを取るのだろうか?私はサーバー管理者ではないので、アプリケーションで多くのsessionScope変数を使用すると、サーバーがクラッシュする心配があります。 – beginner