問題タブ [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 - struts2でInterceptorを使用している場合はログインできません
Struts2アプリケーションを学ぶための小さなアプリケーションがあります
管理ページを作成し、その中に、ユーザーがログインしているかどうかをコードでチェックします。ログインしていない場合は、ログインページにリダイレクトします。
ユーザーがアクセスしようとしているがログインはしていないすべてのページをチェックするインターセプターを作成します。これにより、このユーザーはログインページにリダイレクトされます。すべてがうまく機能していますが、データベースで正しいユーザー名とパスワードを入力すると、ログインできません。インターセプターを削除すると、管理ページにログインできます。
ログインの前後にユーザーのインターセプターチェックセッションが発生する可能性がありますが、ユーザー名とパスワードがtrueであるにもかかわらず、アプリケーション、セッションがnullになる理由がわからない場合がありますが、セッションを設定するとnullになります。
以下の私のコードは、私が言ったことを示します:
ログインアクション
私のカスタムインターセプターコード:
私のストラット設定
正しいユーザー名とパスワードを入力すると、login.jspページにリダイレクトされるまでデータベースに一致します
そして私はそれについて知らない
私を助けてください
どうもありがとうございます
struts2 - 表形式のデータストラット
マスター/詳細フォームからデータをキャプチャしようとしましたが、次のようにJSONオブジェクトを返します。私のフォームはこれに似ていますhttp://www.vitarara.org/cms/struts_2_cookbook/creating_a_themeこのガイドに従いましたhttp://struts.apache.org /2.1.6/docs/tabular-inputs.htmlマスターデータをキャプチャできますが、詳細にアクセスするにはどうすればよいですか?私が現時点で得た結果は
私のフォームは:
どうすればdreqproductosを入手できますか?
私のクラスは
と
そして私の行動は
struts2 - Struts 2 で別のアクションからリダイレクトされたアクションの「実行」メソッドを呼び出すにはどうすればよいですか?
Struts 2 であるアクションから別のアクションにリダイレクトする際に問題が発生しました。
アクション 1 (StudentZuPruefungHinzufuegen と呼ばれる) では、アクション エラーを作成しており、これらをアクション 2 (ZeigePruefungsliste と呼ばれます) で表示したいと考えています。
ストラットから「redirectAction」を使用すると、表示したい場所で正しいアクションエラーが表示されます。問題は、アクション エラーで結果ページを表示する前に、フレームワークが「実行」メソッドを呼び出さないことです。「実行」メソッド内で入力しているテーブルは空ですが、結果のページは実際には役に立ちません。
アクション 2 にリダイレクトするときにメソッドを呼び出すように Struts に指示する方法を誰か教えてもらえますか?
私の struts.xml は次のようになります。
編集: 私のアクション クラスのコード。
こんにちは、マーカス
hibernate - Struts2は子と親を同じテーブルに挿入して更新します
Hibernate と Struts2 を使用して小さな Web サイトを構築しています
テーブルコールのカテゴリがあります
次のような構造:
ID
カテゴリ名
Parentcatid
...
すべてのマイ ファイルは次のとおりです。
カテゴリ ポジョ
私の行動
ドロップダウンボックス用の私のフォームスニペット:
カテゴリの更新時に問題が発生しました。カテゴリのリストをロードできますが、選択されているのは headerValue であり、親の名前ではありません!
web-applications - セッション オブジェクト アクション コンテキスト struts2
この SO の質問のようなリンクをいくつか見てみると、新しいアクション リクエストごとに新しいアクション コンテキストが作成されることがわかりました。
アクション A への要求がある場合、新しい ActionContext AC1 が作成されるとします。("xxx","yyy") のようなものを、AC1 にあるセッション マップに保存します。
次に、同じユーザーによるアクション B への要求があります。新しい ActionContext AC2 が作成された場合、どうにかして AC1 からセッション オブジェクトを取得しますか、それとも空になりますか?
セッションオブジェクトは、同じブラウザからの同じユーザーからの複数のリクエストにわたってグローバルではありませんか?
struts2 - struts2+hibernate で異なるユーザーを区別する
struts.xml
これは私のインターセプターです
間違って質問してしまい申し訳ありません。
私のアプリケーションには、Admin と Customer の 2 種類のユーザーがいます。それらを区別し、役割に基づいて特定の名前空間アクションに動的にリダイレクトしたいと考えています。
現在、管理者用の認証機能のみがあります。
私はこの解決策を思いつきました。
しかし、リクエスト URL を特定の namespece のアクションにマップする方法がわかりません。ロールに基づいて、顧客の場合は「セキュア」、管理者の場合は「管理者」です。それ以外の場合は、グローバル例外を表示します。
管理者用のすべての JSP は管理者フォルダー内にあり、顧客用のすべての JSP は WEF-INF フォルダーの顧客フォルダー内にあります。
また、まだ記入しなければならないが、これを行う方法がわからないコメントをいくつか指定しました。ロールの確認については知っていますが、リダイレクトについては何をすべきかわかりません。
私はまだこれを実装していませんでした。しかし、私はこの考えに行き着きました。私が考えていることでさえ、可能か不可能か。より良い解決策があれば、教えてください。
struts2 - アクションを連鎖させるためのStruts2 ActionContextとResponse
struts2 チェーン アクションに関してかなり複雑な問題があります。私の問題を読んでいただき、ありがとうございます。私はそれを明確に説明するために最善を尽くします。
以下は私のstruts.xmlです:
私のロジックは次のようなものです: /myapp/test にアクセスすると、TestAction1 がリクエストを処理します。TestAction1 では、次のようにアクション x (構成内の 2 番目のアクション) を「含め」ます。
そして重要なことは、「x.action」を含めるときにカスタマイズされた ResponseIml を使用していることです。
含めた後、「成功」を返すため、結果はアクション y (構成の 3 番目のアクション) にチェーンされます。
そして最後に、TestAction2 は引き続きリクエストを処理し、成功の結果になり、jsp がレンダリングされるはずですが、空白のページが表示されます。
jsp ファイルは非常に単純です: index.jsp
私の質問/パズルは:
- TestAction1 で、ServletActionContext から応答を取得すると、インクルードの前後で異なる応答が返されます。含める前はデフォルトの応答ですが、含めた後、カスタマイズした ResponseImpl のインスタンスを取得しました。私は同じものを得ると期待しています。つまり、デフォルトの応答です。
- TestAction2 では、ServletActionContext から応答を取得します。取得したのは、カスタマイズした ResponseIml のインスタンスです。これは私の最も重要なことです。ここでデフォルトの応答インスタンスを取得する必要があると思います。つまり、org.apache.catalina.connector.Response です。
- TestAction2 で別の ActionContext を取得しています (TestAction1 で取得した ActionContext と比較して)。
この問題は本当に頭がおかしくなり、何日も費やしました。
アドバイスをいただければ幸いです。
どうもありがとう!!
私のコード:
TestAction1:
応答実装:
TestAction2:
web.xml
これは私のデバッグ情報です。
- 含める前: アクション コンテキストは :com.opensymphony.xwork2 です。ActionContext@c639ce
- 含める前: 応答は次のとおりです: org.apache.catalina.connector.ResponseFacade@8b677f
- 応答から取得:
<h1>Test!</h1>
- 含めた後: アクション コンテキストは com.opensymphony.xwork2 です。ActionContext@2445d7
- 含めた後: 応答は次のとおりです: com.bv.test.ResponseImpl@165547d
- TestAction 2 では、アクション コンテキストは :com.opensymphony.xwork2 です。ActionContext@19478c7
- TestAction 2 の場合: 応答は次のとおりです: com.bv.test.ResponseImpl@165547d
だから、インクルードの前後に異なる ActionContext インスタンスがあります!!
java - 2.0.x 以降のバージョンの struts2 の場合は、struts2 および jaxb
バージョン 2.0.x よりも新しいバージョンの struts2 で動作する struts2-jaxb-plugin のようなプラグインはありますか?
struts2 の新しいバージョンでは、クラス com.opensymphony.xwork2.ActionContext に get(Object o) がなくなりました。
struts2 を使用して xml の結果を達成するためのより良い方法があれば、遠慮なく正しい方向に向けてください。
それ以外の場合は、struts2-jaxb-plugin で起こったことのように、独自のマーシャリング インターセプターと jaxb の結果型を作成する方法を考えています。
現在のバージョン:
- struts2: 2.3.14
- jaxb-api: 2.2.9
java - 受け入れテスト中にStruts 2からActionContextを取得するには?
Struts 2 と Tomcat をサーブレット コンテナーとして使用するアプリケーションで、cucumber-jvm を使用して受け入れテスト (動作のテスト) を作成しています。コードのある時点で、HttpSession
によって作成された Struts 2 からユーザーをフェッチする必要がありHttpServletRequest
ます。
私はテストを行っており、Tomcat を実行していないため、アクティブなセッションがなく、NullPointerException
.
呼び出す必要があるコードは次のとおりです。
そして getSession メソッド:
正直なところ、私は Struts 2 についてあまり知らないので、少し助けが必要です。Tomcatの例が埋め込まれたこのcucumber-jvmを見てきましたが、理解するのに苦労しています。
このStruts 2 Junit Tutorialも見てきました。悲しいことに、これはすべての機能を十分にカバーしているわけではなくStrutsTestCase
、最も単純な使用例です (すべてを考慮すると、かなり役に立たないチュートリアルです)。
では、ユーザーがアプリケーションを使用しているかのように受け入れテストを実行するにはどうすればよいでしょうか?
アップデート:
答えてくれたスティーブン・ベニテスに感謝します!
私は2つのことをしなければなりませんでした:
- 提案されているように、HttpServletRequest をモックします。
- HttpSession をモックして、必要な属性を取得します。
cucumber-jvm テストに追加したコードは次のとおりです。
}