我把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()
,然后在execute()
. 而且我认为 getModel 用于将 bean 推送到 valueStack,对吗?
...无论如何,控制台向我展示了这一点。这很奇怪;准备→获取模型→执行。
这对我来说是一个巨大的问题。用英语很难解释原因……但我会努力的!
我曾经创建每个处理相同 bean 的动作类,当然每个动作类中都有相同的代码(变量,以及它们的 getter 和 setter)。
现在我正在尝试创建一个操作来避免这种重复。这个动作类有几个方法(像这样映射在 struts.xml 中;<action name="View_board" method="view">
)。
正如我们在控制台中看到的,这view()
在动作类的最后被调用,例如execute()
. prepare()
确实只构建bean,并且view()
做真正的工作。但是getModel()
在调用 of 之前调用view()
,因此没有机会将 bean 放入 ValueStack。
我希望你们能理解我要解释的内容。
总而言之,有每个动作类,如 BoardView、BoardDelete、BoardWrite ......并且它们运行良好!但我讨厌重复的东西,所以我创建了 BoardManager 类。此类具有view()
由类(如 BoardView)处理的每个方法(如)。但是这个 view() 是在调用 之后调用的getModel()
,所以 bean(return of getModel()
) 没有机会被推送到 ValueStack 中。
请帮帮我。教我你在该领域的专业知识。我正在自己开发这一切,这让我感觉很艰难。
谢谢!!