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