問題タブ [struts2-interceptors]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
591 参照

struts2 - Custom Interceptor から以前の Jsp のプロパティにアクセスする方法は?

タグを使用してプロパティとしてアクセスする Action クラスで使用する文字列は、値スタックに格納されますか?

name = userの textInput フィールドを持つフォームを持つ JSP1 という JSP があります。

フォームを送信すると、Action クラスが呼び出されます。ゲッターとセッターを使用してアクセスできます。

値スタックから取得しようとしました

しかし、それは null を返します。

また、CustomInterceptor クラスに getter と setter を持つ String 変数を持たせようとしました。それも目的を果たせませんでした。

インターセプターに値を取得する方法は?

0 投票する
3 に答える
1116 参照

jsp - ミューテーターとアクセサー (セッター/ゲッター) のないパラメーターと、Struts 2 のパラメーター インターセプター

次のアクション クラスでは、パラメーター インターセプターを使用しています。

以下は次のとおりです<s:form>

ここでは、非表示のフォーム フィールドextraParamが宣言されていないため、アクション クラスにセッターとゲッターがありません。

この場合、このフォームが送信されると、サーバー端末に次のメッセージが表示されます。

SEVERE: 開発者通知 (struts.devMode を false に設定してこのメ​​ッセージを無効にします): 'class actions.TestAction で 'extraParam' を設定中に予期しない例外がキャッチされました: 値 ['', ] で式 'extraParam' を設定中にエラーが発生しました

params.excludeParamsextraParamアクションクラスのようにパラメーターを除外しません。

パラメータインターセプターを使用しているときに、このような例外をどうにかして防ぐことはできますか? このようなメッセージは、アクション メッセージに不必要に追加され<s:actionmessage/>、使用されている場合は、まったく表示されないはずのときに を介して表示されます。


これparamsPrepareParamsStackをアクション クラス then に置き換えるとdefaultStack、そのようなメッセージは表示されません。次のように警告を出すだけです。

警告: パラメータ [extraParam] はパターンの excludeParams リストにあります!

そのようなメッセージを無効にするように設定てください。struts.devModefalse

0 投票する
1 に答える
273 参照

java - HashMap に入力を設定できません

ループに次のような入力があります。

そして、私のJavaファイルには、

しかし、jsp で生成された入力ごとに、コンソールには次のように表示されます。

だから私のHashMapはnullです

0 投票する
1 に答える
67 参照

java - struts2 インターセプターと Web サーブレット

アクションが関連付けられていないページに Struts2 インターセプターを使用することはできますか? すべてのユーザーがログインする必要があるように、インターセプターを実装しようとしています。しかし、私のサイトの他のページは Web サーブレットであり、アクションやストラットに依存していません。どうすればそれを達成できますか?インターセプターを使用するためだけにアクションやアクション クラスを作成したくはありません。

0 投票する
1 に答える
628 参照

java - 特定のアクションの Struts 2 検証を防止する

異なるアクション クラスに 2 つのアクションがあります。2 つのアクションは次のとおりです。

  • 最初のアクション (フィールド: メール)
  • 2 番目のアクション (フィールド: email、firstName)

どちらもUserオブジェクトを使用してフィールドを検証しています

Userクラスの検証プロパティを次のようにバインドします

今問題は、私が提供したフィールドを含む2番目のアクションに対して1st action(フィールドとして含まれていない)、正常に機能することですfirstNamefirstName

この最初のアクションが機能しなくなったため、firstName存在しないものを検索する可能性があります

firstNameでは、 2番目のアクションに対してのみ検証を行うにはどうすればよいですか? (最初のアクションではありません)

0 投票する
2 に答える
5487 参照

security - Struts2 に CSR 偽造防止コードを実装するには?

クロスサイト リクエスト フォージェリ攻撃を防ぐために、struts.xml とすべてのフォームにインターセプターを追加しました。私は他に何かすべきかどうか疑問に思っていますか?自動的に行われない場合に備えて、トークンを取得し、フォームとともに送信するものと照合するなど。

すべてのフォームは

0 投票する
1 に答える
1543 参照

validation - struts2のバリデーションとprepareメソッド関連

顧客のすべての詳細を含むJSPページを表示する custprofileviewアクションがあり、私のJSPではすべてのフィールドが私のようなものです

そして、 Action を呼び出す送信ボタンがありますupdatecustprofile

実際updatecustprofileには、プロパティを直接マッピングする代わりに、 private CustprofileVO custprofileVO; setter と getter を持つメンバー変数があります。

CustprofileVOクラスには のようなフィールドがありemailphone他のすべてのフィールドにはセッターとゲッター メソッドがあります。

問題は次のとおりです。updatecustprofileアクションではPrepareableインターフェイスを実装しています。prepare()メソッドの実装ではcustprofileVO.setDefaultID("Select");、さらに4つのフィールドを設定していますが、送信ボタンをクリックしてプログラムを実行するとNPE、最初の行に表示されますcustprofileVO.setDefaultID("Select");

フレームワークがインスタンス化されていないよう CustprofileVO custprofileVOです。custprofileVOフィールドの設定のすぐ上で手動でインスタンス化する と(そうcustprofileVO = new CustprofileVO()することで機能します。問題は-理想的にはstruts2フレームワークが実行していないインスタンスを提供する必要があり、理由を理解したい.

さらに、prepare メソッドで手動で設定 custprofileVOすると機能しますが、フィールド名が XML を使用して検証を適用し custprofileVO.email、その検証とその検証 も適用しcustprofileVO.phoneました。

送信ボタンをクリックして検証しようとすると、検証が実行されますが、すべてのテキストボックスのデータが空白になるため、画面にすべてのフィールドのメッセージが表示されます。

データが削除されるのはなぜですか?

0 投票する
2 に答える
952 参照

java - Struts 2 でインターセプターを使用すると NullPointerException が発生する

これは私のWelcomeActionクラスです:

これは私のstruts.xmlファイルです:

インターセプターを使用しようとしましたが、コメントを外すとNullPointerExceptionスローされます。

私はStruts 2が初めてで、理解しようとしています。私はインターセプターとこのチュートリアルからの学習のトピックに取り組んでいます。