問題タブ [actioncontext]
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.
struts2 - 新しいアクション オブジェクトごとに新しい ActionContext と ValueStack が作成されますか?
私の質問は次のとおりです。
1) Struts2 では、すべてのアクション オブジェクトに独自の対応するActionContext
andがありValueStack
ますか?
つまり、新しいリクエストごとに新しいアクション オブジェクトが作成されます。これは、新しいアクション オブジェクトが作成されるたびに、新しいものActionContext
もValueStack
作成されるということですか?
2) 次のシナリオを検討してください。
Action1------1 つ目の要件------->view.jsp------2 つ目の要件--------->action2
そのため、action1 に対するリクエストが来ると、action1 の新しいオブジェクトとそれに対応するActionContext
andValueStack
が作成されます。
(ハイパーリンクをクリックすると) view.jsp から新しい要求が action2 に送られます。
これは、(action1 に関連する) 前ActionContext
の andValueStack
が破棄され、(action2 の) 新しいActionContext
andValueStack
が作成されることを意味しますか?
3) ActionContext
view.jsp の (action1 の) に何かを保存し、(view.jsp から) action2 のハイパーリンクをクリックすると、ActionContext
(action1 の) とともにそのデータは失われますか?
ありがとう。
java - インターセプターでの実行メソッドアノテーションの取得
特定のユーザー権限にアクセスする必要があるアクションがあるので、メソッドアノテーション@RequiredPermissionとインターセプターを作成して、実行されるメソッドにアノテーションがあるかどうか、およびログに記録されたユーザーかどうかを確認しました。許可を得てください。
問題は、ActionInvocationからもActionContextからもこの情報を取得する方法がわからないことです。
それはそれを行うための1つの方法であると確信しています。そうでない場合は、おそらくそれを使用するのに適したフレームワークではないと思います。
ヒントはありますか?
java - Struts2およびSpringsecurity3とのセッションの処理
Struts2とSpringsecurity3を統合しようとしています。両方でセッションを処理する方法がわかりません。標準的な方法はありますか?
セッション処理、ActionContextに組み込まれたstrutsセッションを知っています
例えば
しかし、それと一緒にスプリングセキュリティを使用する方法ではありません。
Spring Security3の使用に関するSpringMVCチュートリアルはたくさんありますが、Struts2とSpringSecurity 3についてはそれほど多くありません。良いチュートリアルを知っていますか?それとも、Spring MVCを使用したほうがいいでしょうか?
struts2 - Struts2 ActionContext と ValueStack?
私の質問は次のとおりです。
- Struts2 では、すべてのアクション オブジェクトに対応する独自の ActionContext と ValueStack がありますか?
つまり、新しいリクエストごとに新しいアクション オブジェクトが作成されます。これは、新しいアクション オブジェクトが作成されるたびに、新しい ActionContext と ValueStack も作成されるということですか?
- 次のシナリオを検討してください。
Action1------1 つ目の要件------->view.jsp------2 つ目の要件--------->action2.
そのため、action1 に対するリクエストが来ると、action1 の新しいオブジェクトと、対応する ActionContext および ValueStack が作成されます。
(ハイパーリンクをクリックすると) view.jsp から新しい要求が action2 に送られます。
これは、以前の ActionContext と ValueStack (action1 に関連) が破棄され、新しい ActionContext と ValueStack (action2 用) が作成されるということですか?
- view.jsp の (action1 の) ActionContext に何かを保存し、(view.jsp からの) action2 のハイパーリンクをクリックすると、そのデータは (action1 の) ActionContext とともに失われますか?
struts2 - (Struts2) インターセプターから Action インスタンスに新しいパラメーターを追加する方法は?
XML リクエストを前処理するインターセプターを作成したいと考えています。このインターセプターでは、XML を解析し、処理された情報を ValueStack に配置して、アクション内のインスタンスにマップできるようにします。しかし、私は非常に多くの方法を試しましたが、どれもうまくいきません。誰でも私を助けてアドバイスをくれますか?ありがとう!
Interceptor
で //ValueStack
ActionContext を取得 ctx = invocation.getInvocationContext();
マップ ctxMap = ctx.getValueStack().getContext();//次のことを試しましたが、次のいずれも動作しません
ctxMap.get("com.opensymphony.xwork2.ActionContext.parameters")).put("data1", "1");
ctxMap.get("パラメータ")).put("データ1", "1");
ctxMap.get("リクエスト")).put("データ1", "1");
ctx.getParameters().put("data1",new String[]{"1"});
spring - Strut 2.3.1.2 単体テスト、Spring の共依存と getContext() を使用して NPE を削除する方法
Struts 2.3.1.2 にアップグレードしたばかりで、JUnit テストでいくつかの問題があります。
私の古いテストコードはこのようなものでした....
アクション クラスの execute メソッドには、次のコードがあります。
これにより、LocalizedTextUtil で NullPointerException が発生します...
今、私はこれを試してみることができました...
しかし、コンテキストからの Valuestack が null であるため、NullPointerException が発生します。これらの問題を解決しようと何度も試みることはできますが、それは無駄な作業のように思えます。もっと良い方法があるに違いない?!?
良い....
新しいStruts 2.3.xx testing docに従います
私の struts.xml は春に配線されています。
私のテストクラス
しかし、これは完全に実装された Spring 注入 Action クラスを取得することを意味します! ほとんどの人は「はい!!!」と言うでしょう。この時点で。
私の問題は、これがUNITテストクラスではないことです.DB層までずっと呼び出しを行っています。これは、実行時に配線されているためです。
だからここに私の質問があります、私はそれに到達するのに時間がかかったことを知っています.必要なリソースにアクセスできるActionクラスを取得することは可能ですか(getText()などのメソッド呼び出し用)、しかしすべてがSpringではありません配線?
現時点では、アクションで setServicexxxx に一致するすべてのメソッドを削除するために、リフェクション ルートに進みたいと思っています。少なくとも、テストの実行時に NullPointerException が発生し、そのサービスをモックアウトできますが、それは間違っています。Spring コンテキストの起動に 2 秒も費やさずに、テストを FAST にしたいと考えています。
Struts2.3 は、ユニット テストとは何かというマントラに従わないベース テスト クラスを作成したのはなぜですか?
これは、Struts 2.0.9 (xwork-2.0.3.jar) では問題ありませんでした。
私は何が欠けていますか?
struts2 - Struts2 セッションの有効期限が切れました
アプリに struts2jquery グリッド プラグインを使用しています。セッションタイムアウトにインターセプターを使用しており、web.xml でセッションタイムアウトを構成していますが、問題はセッションタイムアウト後に login.jsp などの必要なページに移動しないことです。私の struts.xml は次のとおりです..
デバッグ中にインターセプター クラスに入ることができますが、ログイン ページにリダイレクトされません。私のコードの問題は何ですか?
私のインターセプターメソッドは..
java - Struts2は、プロパティタグを使用してjspからActionContextにアクセスします
私はしばらくの間この情報を調べてきましたが、オンラインにはあまりないようです。
簡単にするために、タグActionContext
を介してどのようにアクセスしますか?<s:property/>
com.opensymphony.xwork2.ActionContext.locale
基本的に(現在のロケール)を取得したい
私はこれらすべてを試しましたが、どれもうまくいかないようです
そしてこれらのより多くの組み合わせ。
ありがとう
struts2 - struts2i18ninterceptorが同じページまたはアクションに戻る
私は自分の問題について2時間グーグルで検索しましたが、それでも解決策を見つけることができませんでした。
私がやりたいこと:
私は国際的なアプリケーションにstruts2を使用しているので、多言語サポートが必要です。そのため、i18n-Interceptorは、通過するパラメーターが1つだけでロケールを変更することがわかりました(非常にクールです!)。ここで、アプリケーションの任意の時点でロケールを変更して、ユーザーが言語を変更し、元のページまたはアクションと同じページに転送されるようにします。これはそれほど簡単ではないようです。私はすでにグーグルで見つけた次のことを試しましたが、私にはうまくいきません:
JSPでacutallURL/ URI( "ShowUser.action"など)を使用し、これを別のロケールで呼び出します->パラメーターを使用してjspで完全なURLまたはURIを取得する方法が見つかりません。URLはタイル(つまり/content/site/user.jsp)から現在のサイトを提供し、URIは私のタイルレイアウト(つまり/content/layout.jsp)を返します。request.getRequestUrl()とrequest.getRequestURI()を試しました
actionContextを使用して、JSPの完全なURLを取得します->方法が見つかりません。
「ChangeLocale.action」で「request.getHeader( "referal")」を使用し、これをstruts.xmlでredirectActionとして動的に設定します->動作していますが、パラメーターなどを使用してURLを解析するにはコードが多すぎます)
3番目のポイントは次のコードで作業することですが、私はより良い解決策を探しています:
struts.xmlの関連部分
LocaleAction.java:
だから私はすなわち行動から来ました:
そして、ユーザーサイトで別の言語に切り替えると、LocaleActionはforwardActionを返します。
だから、これは機能していますが、私にはダークサイドのように見えますか?この(私が思ったように)「小さな」問題を解決するための正しい解決策は何ですか?回答ありがとうございます。
よろしくトーマス:-)
struts2 - actioncontext と actionInvocation struts2 の違いは何ですか?
ActionContext と ActionInvocation に関して少し混乱しています。Action Context は Action が実行されているコンテキストであることを知っています。ActionInvocation は、Session、Value Stack などの ActionContext 内にありますか? 次に、ActionContext はスレッドごとに一意であるため、すべてのユーザー要求で作成されますか? もしそうなら、これはすべてのユーザー要求で毎回新しいアクション コンテキストを作成するにはコストがかかりすぎますか?