問題タブ [model-driven]
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 - ModelDrivenとPrepareのシーケンス?
println()
Actionクラスの各メソッドに入れます。
順番はそうだと思いました。準備→実行→getModel。
本で読んだことを覚えているので、以前はBeanクラスを作成し、でいくつかのロジックを実行しprepare()
、でSUCCESSを返していましたexecute()
。そして、getModelはBeanをvalueStackにプッシュするためのものだと思いますよね?
...とにかくコンソールは私にこれを示しました。それは非常に奇妙です。準備→getModel→実行。
そして、これは私にとって大きな問題になりつつあります。その理由を英語で説明するのはとても難しいです...でもやってみます!
以前は同じBeanを処理する各アクションクラスを作成していましたが、もちろん、各アクションクラスには同じコード(変数とそのゲッターとセッター)が複製されています。
今、私はその重複を避けるために1つのアクションを作成しようとしています。このアクションクラスにはいくつかのメソッドがあります(このようにstruts.xmlにマップされています; <action name="View_board" method="view">
)。
そして、コンソールで見たように、これview()
は最後にのようなアクションクラスで呼び出されexecute()
ます。はprepare()
Beanを構築するだけで、view()
実際のジョブを実行します。ただし、getModel()
を呼び出す前に呼び出されるview()
ため、BeanをValueStackに配置する機会はありません。
私が説明しようとしていることを皆さんが理解してくれることを願っています。
要約すると、BoardView、BoardDelete、BoardWriteなどの各アクションクラスがあり、それらはうまく機能しました!しかし、私はその重複したものが嫌いなので、BoardManagerクラスを作成しました。view()
このクラスには、クラス(BoardViewなど)によって処理された各メソッド(など)があります。ただし、このview()はの呼び出し後に呼び出されたgetModel()
ため、bean(return of getModel()
)はValueStackにプッシュされる機会がありません。
私を助けてください。現場でのノウハウを教えてください。私はそれをすべて自分で開発しています、そしてこれは私をとても難しく感じさせています。
ありがとうございました!!
struts2 - Struts2 の ModelDriven に問題が見つかりました
これをダウンロードして実行してください。少し面倒でもやってみる価値はあると思います。
アクションクラスのexecuteメソッドで、beanを返すメソッドでbeanをセットすると、JSPでModeldrivenが動かない(動かない<s:property "someField" />
のでbeanのインスタンス名をこのよう に打ち込む<s:property "myBean.someField" />
)。
ただし、Bean のフィールド値を設定すると、Modeldriven が機能します。
あなたが私を信じていないかもしれませんし、私が間違ったことをしたと思っているかもしれません. しかし、それは真実ではありません!やってみなよ..
何を見つけたのかわかりませんでした。だから私はこの質問をします。そして、私自身の答えとして、Bean を値スタックにプッシュすると、モデル駆動型が機能します。
なぜこれについて疑問がないのだろうか。深刻な問題だと思います。
struts2 - Struts2ModelDrivenインターフェースのしくみ
私は疑問を持っています。Struts2Modeldriven
インターフェースのしくみ。私のアプリケーションでは、単一のフォームに使用しました。そして、セッターとゲッターをフォーム名と同じように配置しました。ModelDriven
セッターとゲッターで複数のオブジェクトを配置することは可能ですか?私がそのように配置した場合、それはどのように認識されますか?
java - struts2を使用して列挙型をフォーム要素にマッピングする
java.lang.Enumを拡張するクラスにマップするラジオボタンを含むフォームを作成しようとしています。
アクションはModelDrivenを実装し、getModel()を介して次のオブジェクトの新しいインスタンスを利用できるようにします。
関連する残りのクラスは次のとおりです。それらはすべてJAXBによって生成されました。
このエラーが発生します:
org.apache.jasper.JasperException:タグ'radio'、フィールド'list'、name'clientStatus.status':要求されたリストキー'clientStatus.status'は、コレクション/配列/マップ/列挙型/イテレータタイプとして解決できませんでした。例:人または人。{名前}
問題が何であるかについてのアイデアはありますか?
編集: 問題はClientStatusがnullであるということだと思います。新しいCustomer()をインスタンス化しただけなので、そのフィールドはnullです。プログラムの2つの部分で重複する情報をエンコードする必要があるため、これは残念です。私はビューでこのようなことをすることができます:
または、コントローラーで、ビューに必要なCustomerのフィールドを明示的にインスタンス化する必要があります。これはまた、特定のJAXBクラスをインスタンス化し、getModel()を介して利用できるようにするだけで、あらゆる種類のJAXBオブジェクトを処理できる一般的なアクションを作成するという私の希望を打ち砕きます。
この不幸な状況から回復する方法について誰かが何か考えを持っていますか?
編集2:最初のフォームを私が期待するものに修正しました。
jsp - Struts2 CRUD、モデルの更新方法: ModelDriven. JSPでは常に空白です
JSP でモデルを取得してオブジェクトを更新することができません。
私のJSPでは、そのような単純なものが欲しい
しかし、私のテキストフィールドは常に空白です。
何が欠けていますか?
struts2 - ModelDriven を使用した Struts2 Bulk Data の表示
モデル駆動型プロセスの基本的な概念を知っています。
同じ ModelDriven Interface プロセスを使用して、アクション タグ付きの応答ページに大量のデータを表示できるかどうかをどのように知りたいですか?
これを例で説明するには
要求ページは正常で、アクション制御される引数があります。
リクエストページの検証時に、中間プロセスが配列リストオブジェクトを返します
応答成功ページには、バケット 100 の配列リストがあります
配列リストの各バケットは、10 個の値の JavaBean オブジェクトを保持します。
質問: ModelDriven Interface プロセスでは、元のデータを抽出するために、Array List バケットをループし、Response ページで Java Bean をキャストしてデータを表示する必要がありますか??
カルシックに関して
struts2 - Struts2 の 1 つのアクション クラスに対して複数の ModelDriven モデルをロードする方法はありますか?
1 つのアクション クラスに対して複数の ModelDriven モデルをロードする方法、または struts2 の 1 つのアクション クラスでモデルを切り替える方法はありますか?
validation - Struts2 では、validate でモデル駆動型を使用できません
struts.xml で:
私のクラス:
次にjspで:
入力結果に期待します:
無事user_form.jspにたどり着いたのですが、actionErrorが出ません
「implements ModelDriven」なしで試してみましたが、動作します
モデル駆動型はactionErrorsを消去します(私は推測しました)
検証とモデル駆動型を使用したい ¿
struts2 - Struts2-ModelDrivenの実装-モデルのプロパティにアクセスするインターセプターを作成します
私はStruts2に比較的慣れていません。開発のオーバーヘッドを減らすためにModelDrivenの使用を開始しました。アクションに到達する前にプロパティを変更するためのインターフェイスを作成したかったのですが、モデルのModelDrivenを実装するクラスのプロパティにアクセスする方法がわかりません。
validate()のようなものが、実際のアクションクラスでどのように機能するかを確認できます。とにかくサービスの背後にあるロジックをカプセル化するように設計を変更しましたが、それでもこれが可能かどうかを知りたいと思います。
私たちはすべてをajax/jsonで行っているので、モデル駆動型が非常に役立つことがわかりました-しかし、より良い代替手段があるかどうかはわかりません!
編集-コード例:
メール本文で使用するテンプレート内のメッセージをメッセージに置き換えようとしています。
このようなメールモデル
email.messageの代わりにインターセプタープリプロセッサーが欲しいのですが。このように見えるはずですが、action.getMessage/setMessageは使用できません。