Я использую Struts 1.1 (не заводите меня), и обновление сейчас не вариант. К сожалению, единый подход к единственному действию сводит меня с ума и делает действие довольно сложным, так как мы не можем использовать переменные экземпляра и тому подобное, то есть все необходимые объекты должны быть переданы всем методам в качестве параметров. Я предпочитаю использовать переменные экземпляра, поэтому я хотел бы создать новый экземпляр Action для каждого запроса из метода execute действия, например:
public ActionForward execute (ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
return (new SaveUserDataAction()).instanceExecute(mapping, form, request, response);
}
public ActionForward instanceExecute (ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
// all normal execute stuff goes here
}
Это отлично работает, но мне интересно, если вы, ребята, можете подумать о каких-либо проблем с этим подходом. Я знаю, что это потребует нескольких дополнительных циклов ЦП из-за создания дополнительного объекта, но мудрость в наши дни заключается в том, что для каждого запроса создается тонна создания объекта, и еще один остается незамеченным; не говоря уже о том, что стоит улучшить читаемость и удобство обслуживания. Есть ли другие недостатки, которые являются более серьезными?
Кроме того, есть ли более простой способ сделать это, чем этот полукруглый подход? Возможно, поддерживаемый Struts подход?