Основной поток Struts - PullRequest
       21

Основной поток Struts

12 голосов
/ 27 апреля 2011

Ну, я хочу изучить Struts, поэтому я собираюсь начать со Struts 1, я хотел бы знать общий процесс.Какие файлы требуются?

Какова функция struts-config.xml?validation.xml?validation-rules.xml Когда вы посещаете свою страницу JSP, и действие запускается, что происходит?Что делает класс Action и Form?Какой класс вызывается первым, когда запускается действие.

Я только что скачал образец формы, и все эти файлы сначала сбивают с толку.Я хотел бы знать, что происходит, чтобы получить лучшее представление о Struts.

Ответы [ 3 ]

33 голосов
/ 28 апреля 2011

Вы должны начать с учебника по Struts, который облегчит понимание: D. Вы можете найти много в Интернете, особенно для Struts 1. Вот отправная точка, например .

Но только ради этого, вот презентация высокого обзора .

Сначала вы добавляете Struts ActionServlet в ваш файл web.xml и настраиваете его на прием запросов, соответствующих определенному сопоставлению. Для Struts это *.do (вы можете иметь для этого все, что угодно, *.do - это просто соглашение в сообществе Struts).

Теперь, все, что приходит на сервер с таким *.do шаблоном URL, отправляется на ActionServlet.

Теперь содержимое файла struts-config.xml вступает в игру. ActionServlet - это фронт-контроллер , который просто отправляет другим более подходящим ресурсам для конкретной обработки. Такими конкретными ресурсами являются Action классы.

Например, у вас может быть LoginAction, который должен обрабатывать запросы, поступающие по пути login.do. В struts-config.xml вы указываете это: все, что идет по пути login, должно быть отправлено в LoginAction class.

И вы можете иметь столько объявлений, сколько хотите, для пути x, вызова XAction, для y вызова YAction и т. Д. И т. Д.

Обычно ваш клиент отправляет данные на сервер, данные, которые он вводит в HTML-форму. Эти данные вам нужно обработать в вашем Action классе. Теперь введите ActionForm.

ActionForm - это компонент, который среда Struts заполняет данными из HTML-формы. Вместо request.getParameter("foo") вы можете работать с такими объектами, как, например, formBean.getFoo().

Как только вы выполняете обработку в классе Action с использованием ActionForm, вы должны представить результаты в некотором представлении (кстати, Struts представляет собой MVC среду, поэтому вы должны знать материал или два об этом тоже).

Представления обычно являются файлами JSP. Когда вы возвращаетесь из своего Action, вы указываете «прямое» местоположение по имени (то есть, к какому виду переходить). Теперь снова информация находится в файле struts-config.xml, где имя представления сопоставлено с местоположением JSP.

Платформа затем передает управление этому JSP, JSP представляет данные, которые затем отправляются клиенту в виде HTML (клиенту больше не нужно напрямую обращаться к JSP - они должны быть скрыты платформой Struts).

На новой странице клиент снова выполняет некоторые запросы, и процесс повторяется.

Ну, это настолько высокая презентация, насколько это возможно. Конечно, есть нечто большее, но вы узнаете их, узнав о Struts.

Что касается validator-rules.xml и validation.xml, они используются каркасом Validator , который можно интегрировать со Struts с помощью плагина (в Struts есть плагины, которые вы можно использовать для добавления нового материала), а также для проверки правильности ввода пользователя.

Ну, вот и все. В Интернете можно найти множество учебных пособий, предлагающих более подробную информацию, но надежда поможет вам лучше начать.

Удачи!

8 голосов
/ 16 марта 2012
  1. Когда пользователь отправил страницу jsp.эта страница, имеющая (атрибут) action="login.do".контейнер позвонит на web.xml.в этом web.xml есть два раздела сервлетов и сервлетов
  2. В сервлетах он находит *.do в шаблоне url.если он нашел имя сервлета.и проверьте соответствующий класс.в разделе сервлетов.этот класс ActionServlet.
  3. ActionServlet является контроллером архитектуры модуля Struts.в действии сервлет, имеющий сервисный метод.в этом методе мы создаем RequestPrecessor экземпляр класса
  4. Service(req,res) RequestPrecessor rp = new RequestPrecessor();
  5. Мы вызываем метод процесса RequestProcessor класса через экземпляр rp.process(req,res)
  6. в запросекласс процессора имеет метод process с параметром req, res.тогда он имеет 1 условие в этом классе.это условие возврата всегда верно.потому что это фиктивный метод.

Внутри этого условия выполняется 6 шагов обработки

  1. Создайте экземпляр сопоставления действий в Struts- Config.xml.он сохранит все детали пути отображения действия, значения, типа forward, validation=true/false, input ="*.jsp" и т. д. этих созданных экземпляров
  2. Затем создаст экземпляр класса Form, прежде чем проверит имя отображения действия иИмя формы является совпадением или нет, если оно одинаковое, оно создаст экземпляр формы
  3. . Затем оно перейдет к ActionMapping экземпляру, упомянутому в рис., или не будет validate =true/false.выполните этот шаг.
  4. Затем он создаст экземпляр действия
  5. Затем потребуется четыре параметра метода execute, который вернет экземпляр ActionErrors.если это не пусто.он перейдет на страницу ошибки, в противном случае он попадет на соответствующую страницу.иначе, если он пуст, если пойдет дальше и отобразит соответствующее значение страницы в представлении jsp. Это поток распоряжений.
0 голосов
/ 12 мая 2019

Struts MVC Model

Модель


Struts не поддерживает модель напрямую.Однако файл действий и конфигурации Struts предоставляет вам возможность реализовать его самостоятельно.

Просмотр


1) Компонент формы который расширяет org.apache.struts.action.ActionForm, который используется двумя способами во время выполнения:

  • Когда страница JSP подготавливает соответствующую HTML-форму для отображения, страница JSP
    обращается кbean-компонент, содержащий значения для помещения в форму
    .Эти значения предоставляются из бизнес-логики или из предыдущего пользовательского ввода.
  • Когда пользовательский ввод возвращается из веб-браузера, компонент проверяет и сохраняет этот ввод либо для использования бизнес-логикой, либо (если проверка не пройдена) для последующего повторного отображения.

2) Библиотеки тегов Struts , такие как бин, логика, плагин HTML и плитки

Контроллер


  1. Сервлет действий Struts обрабатывает события времени выполнения в соответствии с набором правил, предоставляемых во время развертывания.Эти правила содержатся в файле конфигурации Struts и определяют, как сервлет реагирует на каждый результат, полученный из бизнес-логики.Изменения потока управления требуют изменений только в файле конфигурации.
  2. Действие Struts расширяет org.apache.struts.action.Action.Во время выполнения сервлет действия называется «выполнить действия», что означает, что сервлет вызывает метод execute каждого из созданных экземпляров классов действий.Объект, возвращенный из метода execute, указывает сервлету действия, к какому действию или файлу JSP обращаться дальше.Чтобы упростить повторное использование, вызовите бизнес-логику из класса действия, а не включайте бизнес-логику в этот класс.

См. Пример Struts 1.3

Для сравнения и сравнения вот Struts 2.3 demo

...