Я помещаю 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");
//...
}
Я думал, что порядок будет; подготовить → выполнить → получить модель.
Поскольку я помню, что читал это в книге, поэтому я создавал класс bean-компонентов и выполнял некоторую логику в prepare()
и просто возвращал SUCCESS в execute()
. И я думаю, что getModel предназначен для помещения bean-компонента в стек значений, верно?
... во всяком случае, консоль показала мне это. Это очень странно; подготовить → получить модель → выполнить.
И это становится для меня огромной проблемой. Очень сложно объяснить причину на английском... но я попробую!
Раньше я создавал каждый класс действий, который имеет дело с одними и теми же bean-компонентами, и, конечно же, в каждом классе действий дублируются одинаковые коды (переменные, их геттеры и сеттеры).
Теперь я пытаюсь создать одно действие, чтобы избежать дублирования. Этот класс действий имеет несколько методов (сопоставленных в struts.xml следующим образом; <action name="View_board" method="view">
).
И, как мы видели в консоли, этот view()
вызывается последним в классе действия, подобно execute()
. prepare()
только создает bean-компоненты, а view()
выполняет настоящую работу. Но getModel()
вызывается перед вызовом view()
, поэтому нет возможности поместить бины в ValueStack.
Надеюсь, вы понимаете, что я пытаюсь объяснить.
Подводя итог, можно сказать, что есть все классы действий, такие как BoardView, BoardDelete, BoardWrite... и они работали хорошо! Но я ненавижу дублировать вещи, поэтому я создал класс BoardManager. Этот класс имеет каждый метод (например, view()
), который обрабатывается классом (например, BoardView). Но этот view() был вызван после вызова getModel()
, поэтому bean-компонент (возврат getModel()
) не может быть помещен в ValueStack.
Пожалуйста, помогите мне. Научите меня своим ноу-хау в этой области. Я разрабатываю все это самостоятельно, и это заставляет меня чувствовать себя так тяжело.
Спасибо!!