問題タブ [struts1]
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.
validation - Struts 検証で「+」文字が挿入される
Struts 1.3.10 を使用して記述されたレガシー アプリをサポートしており、検証 xml フレームワークを使用しています。1 つのアクションを使用して POST されたリクエストを処理し、別のアクションにリダイレクトして表示します。POST されたフォーム データを処理するときは、フォーム Bean を読み取り、セッション スコープの一時オブジェクトに格納し、表示する必要があるときにそのオブジェクトから読み取ります。(これは、投稿後の古典的なリダイレクト パターンです)。
次のようになります。
user posts to Action1 --> [Process, load Session Object] --> Redirect to DisplayAction --> [pull from Session Object for display] --> user gets what they requested.
ユーザーが送信してエラーが発生すると、検証エラーが Struts によって DisplayAction.do に送信されます。これは、入力された最新かつ最高のデータが失われないようにするためです。
ユーザーが住所を入力するフォームがあり、検証は最初のパスでは正常に機能していますが、後続のパスでは機能していません。つまり、ユーザーが最初に郵便番号を省略した場合、struts はそれを正しく認識し、DisplayAction にリダイレクトします。エラースタイルなどはすべて正常に機能しています。ユーザーがエラーを修正すると (2 回目のパス)、すべてのフィールドにスペースがある場所に "+" 記号が挿入されます。つまり、"10 Oak Street" のような住所は "10+Oak+Street" と表示されます。特殊文字チェックに失敗し、データが不良であると主張し続け、ユーザーが動けなくなります。
「+」が挿入される理由、またはそれを防ぐ方法を知っている人はいますか? この動作は見たことがありません。
_ロブ
jsp - struts1.0 から struts2.3.16.1 へのアップグレード
Struts 1.0 を使用した実行中の JSP プロジェクトがあります。そのかなり大きなプロジェクトです。プロジェクトを Struts 2.3.16.1 にアップグレードしたいと考えています。私は Struts フレームワークに慣れていないので、このアップグレードに誰がどのくらいの変更を加える必要があるかわかりません。1.0 は非常に原始的なバージョンであるため、バージョン 1.0 から直接 2.3.16.1 にアップグレードすることをお勧めします。
java - Struts1 - ActionForm Bean と ActionForm クラス
私はStruts 1を初めて使用し、apache.org Webサイトが提供する公式ドキュメントを介して自分自身を教育しようとしています.
ActionForm Beanと ActionsFormクラスの違いは、私には完全にはわかりません。Java Bean を作成するための標準は理解しています。しかし、「ActionForm クラス」セクションに「ActionForm Bean」を作成するための原則がリストされているという事実に、私は少し当惑しています。
これらが 2 つの別々の項目としてリストされているのはなぜですか? すべての Struts ActionForm を Java Bean として作成するべきではないですか? 説明や例を教えてください。ありがとうございました!
情報ソースは次のとおりです。
2.3 ActionForm Bean
注: 多くの場合、ActionForm Bean には Model Bean のプロパティに対応するプロパティがありますが、フォーム Bean 自体は Controller コンポーネント と見なす必要があります。そのため、モデル レイヤーとビュー レイヤーの間でデータを転送できます。
ソース: http://struts.apache.org/development/1.x/userGuide/building_model.html
4.3 ActionForm クラス
ActionForm は、ユーザーが 1 つ以上のページで対話する HTML フォームを表します。フォームの状態を保持するためのプロパティを提供し、それらにアクセスするためのゲッターとセッターを使用します。ActionForms は、セッション (デフォルト) またはリクエスト スコープのいずれかに格納できます。それらがセッションにある場合は、フォームのリセット メソッドを実装して、使用するたびにフォームを初期化することが重要です。フレームワークは、リクエスト パラメータから ActionForm のプロパティを設定し、検証済みのフォームを適切な Action の execute メソッドに送信します。
ActionForm Beanをコーディングするときは、次の原則に留意してください。. .
ソース: http://struts.apache.org/development/1.x/userGuide/building_controller.html
java - struts 1で表示タグを使用するには?
削除ボタンをクリックすると、取得CustomerID
してアクションに送信します。関数の削除を実行します。
java - 構造体 Action クラスの execute メソッドは常に null を返します。ストラット 1.3.10
アプリケーションを古いバージョンの struts から最新の「1」バージョン (1.3.10) にアップグレードしています。ここで、Action を処理しようとするコードは常に null 転送オブジェクトを返します。Struts のソース コードを添付しましたが、常に null を返すようです。アップグレードする前は、コードは正常に機能し、返されたときに転送オブジェクトが設定されていました。
次に、 processActionPerformのStruts コードを次に示します。
ご覧のとおり、これは Action 実行メソッドを呼び出します。以下は、Struts の execute メソッドのコードで、常に null を返すことがわかります。
これを機能させるには、別の Struts クラスまたはメソッドを使用するように変更する必要があるかどうか疑問に思っています。任意の支援をいただければ幸いです。
ありがとう!
java - 春に移行した後もStrutsを探します
アプリ (NetBeans で開発し、glassfish で実行) を Struts 1.3.10 から Spring MVC に移動しました。コーディングを変更し、Struts 関連のものをすべて削除して、テスト環境でテストしました。すべて正常に動作します。次に、すべてのものを本番環境に移動します。また、正常に動作します。しかし、glassfish を起動すると、一部の Struts レンダラーが見つからないという多くの警告があることに気付きました (すべて「クラス org.apache.struts.faces.component を読み込めません....」または「クラス org. apache.struts.faces.renderer......".
プロジェクトフォルダを何度もチェックしました。フォルダー内で Struts という単語を検索しました。Struts とは関係ありません。開発環境と本番環境の domain.xml を確認しました。Struts については何も言及されていません。アプリは現在 Spring で正常に動作していますが、Struts の警告ログを削除したいと考えています。チェックで何か見逃していませんか?
java - ログイン認証フィルター Java ストラット
質問があります。Javaストラットでログインするために複数のユーザーをフィルタリングする方法は?
ここに私のコードがあります
ここにweb.xmlがあります
役割 (管理者とユーザー) を区別する方法。管理者とユーザーがアクセスできるページを区別します。私のコードでは、ログインしていない場合にのみフィルタリングでき、管理者ユーザーに直接アクセスできるためです。たとえば、管理者にログインした後もアクセスできます
/InternetBanking/pembayaranKartuKredit.do?task=クレジットカード
誰でも助けることができますか?ありがとう:)
java - コントローラーの変更後にStrutsアクションが正しいパスをレンダリングしない
私は非常に古い J2EE/Struts サイトに取り組んでおり、最近 PayPal が SSL 3 プロトコルのサポートを中止したため、支払いゲートウェイが注文の詳細を含む POST を受け入れ、クレジット カードを処理する、新しいホストされたチェックアウト プロセスを実装しようとしています。検証し、別の POST を介して応答コード (およびその他の 100 万の値) を返します。
struts で既存のアクションを利用しようとしていますが、struts-config.xml (/store/order/confirmation.do)で指定されたパスがレンダリングされていないため、ハングアップしています。代わりに、リモート サーバーからの POST 要求が処理され、ActionMapping.findForward() が呼び出された後、アプリケーションはリモート サーバーからの POST で要求されたものと同じパスをレンダリングするだけです(/store/checkout/submitOrder.do)。 .
struts-config.xml の転送に redirect="true" を追加しようとすると、適切なパスにリダイレクトされますが、ログに記録されないためにデバッグできない pagecontext 例外が発生します。
これが機能していた方法は、submitOrder フォームが空で、送信入力のみでした。次に、セッションベースのショッピング カートと関連する顧客請求フォームからのチェックアウトの詳細が、応答を生成するために特別なベリサイン ライブラリに渡されます。新しいプロバイダーのフォーム POST を使用したいのですが、このリダイレクトの大失敗で立ち往生しています。
struts-config.xml の行は次のようになります。
そして、アクションは次のようになります。
編集
submitOrder アクションが POST リクエストとして処理されていることを確認しました。以前の POST は単なる空のフォームだったので、余分な POST パラメータが何かを汚し、適切なルーティングを妨げているのではないかと思っています。
tiles-defs.xml では、confirmation.do ビューのリソースは次のとおりです。
アプリケーションはconfirmOrder.jspビューを提供していますが、/store/order/confirmation.do にルーティングしていません。そのため、ページをリロードしようとすると、ユーザーはフォームを再送信するように求められます。これは明らかに望ましくありません。
また、次のように定義されている struts-config.xml の submitOrder アクション定義から name="emptyForm" への参照を削除しました (リモート サーバーから送信されるフォーム POST には emptyForm name 属性がないため)。
それがどのような効果をもたらすかは私にもわかりません。