println()
Actionクラスの各メソッドに入れます。
public String execute() throws Exception {
System.out.println("execute");
//...
}
public void prepare() throws Exception {
System.out.println("prepare");
//...
}
public Object getModel() {
System.out.print("getModel");
//...
}
順番はそうだと思いました。準備→実行→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にプッシュされる機会がありません。
私を助けてください。現場でのノウハウを教えてください。私はそれをすべて自分で開発しています、そしてこれは私をとても難しく感じさせています。
ありがとうございました!!