2017-11-02 19 views
1

メニューを表示するために、すべてのビューにJSP:includeタグを使用しています。昨日、私はあなたが実際にメニューメソッドを返す前にいくつかの処理を行うことができるので、非常にきちんとしたコントローラメソッドを実際に含めることができることを知りました。私は何をやっていることは、私はすべてのページにこれを追加しているです:jsp:コントローラーへのポインターの追加がコントローラの戻り値で動作しない

<jsp:include page="/menu/showMenu"/> 

私はこれを行うために使用される:

<%@ include file="menu.jsp" %> 

メニューがある場合は、この変更は、私がモデルにブール値を渡すことができますどのユーザーがアクセス権を持っているかに応じて特定のオプションを表示または非表示にするために使用しています。これはページを最初にロードするときは完全に機能しますが、コントローラーの処理が完了するとメニューは完全に消えます。たとえば、データベースからのログエントリを示すテーブルを持つログページがあります。列見出しには、送信時にコントローラメソッドを呼び出してログリストをフィルタリングし、フィルタリングされたデータを表示するフォームの一部である検索フィールドが含まれています。そのコントローラメソッドからreturn文は単純です:

return "logs"; 

元を使用したとき、これは完璧に動作し、実際のJSPファイルへのポイントではなく、コントローラのメソッドのが、メニューが消え、コントローラメソッドを含めての新しいアプローチを含めますフィルタリングロジックがページを返すとき私がいつもできることは、JSPファイルをインクルードして、JSPでサービスコールを直接配置して、ユーザーが各関数へのアクセス権を持っているかどうかをチェックすることですが、コントローラがこのようなことを行い、ブール値JSPに渡します。

なぜこの現象が見られますか?必要に応じてコード例を提供することができます。

ありがとうございます!

+0

GETリクエストから戻ったときにメニューが表示されるパターンに気付きましたが、POSTリクエストから戻ったときに表示されないパターンが気付いていました。すべてのGETメソッドは、メニューが表示されたページを返します。 – Martin

+0

私はそれを理解しました!私は私のメニューコントローラにPOSTメソッドを追加しなければならなかった。これはGETメソッドとまったく同じことですが、別のコントローラのPOSTメソッドから返されるページに含まれている場合には必要です。これが誰かを助けることができることを望む! – Martin

+0

これは重複した質問ではないと仮定して、あなた自身の質問に対する答えを理解したので自己回答を出すことができます。 – Lexi

答えて

0

私はそれを理解しました!私は私のメニューコントローラにPOSTメソッドを追加しなければならなかった。これはGETメソッドとまったく同じことですが、別のコントローラのPOSTメソッドから返されるページに含まれている場合には必要です。これが誰かを助けることができることを望む!

関連する問題