В Struts 1.3, каков наилучший способ для контроллера заполнить представление переменными?
-
01-07-2019 - |
Вопрос
Я только что унаследовал кое-какой старый код Struts.
Если Struts (1.3) следует шаблону MVC, как классы действий заполняют представление переменными для отображения в HTML?
До сих пор я видел, как классы действий вводят переменные в (1)
HTTP-запрос с
request.setAttribute("name", user.getName())
(2)
в классах ActionForm используются методы, специфичные для приложения:
UserForm form = (UserForm) actionForm;
form.setUserName(user.getName());
и (3)
переменная RequestScope, которую я вижу на уровне JSP (представление использует JSP), но я не вижу в классах действий.
<p style='color: red'><c:out value='${requestScope.userName}' /></p>
Итак, какой из них считается олдскульным, и каков рекомендуемый способ переноса переменных в представление в Struts?
Решение
Как Struts 1.3
считается олдскульным, я бы порекомендовал плыть по течению и использовать стиль, который уже используется во всем унаследованном вами приложении.
Если все различные стили уже используются, выберите наиболее часто используемый.После этого выберите свой любимый вариант.Моим было бы 1 или 3 - форма (2) обычно лучше всего подходит для данных, которые в конечном итоге будут отображаться внутри некоторых элементов управления формой.Если это так - используйте форму, в противном случае - не делайте этого.
Другие советы
Мои дни Struts давно прошли, но, насколько я помню, раньше мы помещали один компонент для конкретного представления (который работал бы как держатель для более мелких компонентов или коллекций компонентов) в область запроса в нашей реализации Action.perform().Затем этот компонент, специфичный для представления, будет отрисован представлением.