Struts 1 - Есть ли проблемы с проверкой в ​​классе действия вместо формы? - PullRequest
0 голосов
/ 28 апреля 2020

Имеется приложение Struts1, которое я поддерживаю, и я пытаюсь заставить его пройти сканирование Fortify. Кроме того, я считаю, что весь код в приложении struts1 должен находиться в классе действия (или Java классе, вызываемом классом действия). Вы не должны иметь код JDB C в JSP или компонент, используемый в JSP. Это правильно?

Попытка сохранить весь код доступа к данным в классе действия и проверка ввода в форме действия Struts1 создает проблему. Проблема заключается в том, что в случае ошибки проверки код для предварительного заполнения полей на экране редактирования существующими значениями не выполняется снова. Итак, когда происходит ошибка проверки, все текстовые поля go остаются пустыми. Пользователь видит сообщение об ошибке, которое сообщает ему, что он сделал неправильно, но все существующие предварительно заполненные значения пропали.

Если вы выполняете проверку в классе действия вместо формы действия (метод make validate () в форма действия пуста), тогда вы можете снова выполнить класс действия и сохранить предварительно заполненные значения. Я не против, если это не имеет последствий. Мой вопрос в том, можно ли выполнять валидацию в классе действий, например, вместо формы действия? Есть ли причина, по которой вы не должны этого делать?

Спасибо.

1 Ответ

0 голосов
/ 29 апреля 2020

Вы не должны иметь код JDB C в JSP или компонент, используемый в JSP. Это правильно?

JSP только для слоя просмотра; безусловно, «не должно быть» никакого доступа JDB C в JSP. Бин , используемый JSP, является совершенно другим животным, особенно в S1, где ActionForm s используется для нескольких задач.

Пытается сохранить доступ ко всем данным код в классе действия и выполнение проверки ввода в форме действия Struts1 создает проблему.

Не должно; это то, что ActionForm#validate для проверки. Если это означает выполнение доступа к данным, соглашение S1 не нарушается (хотя я бы перенес его в класс доступа к данным). Если поля формы возвращаются пустыми, это проблема с реализацией.

В среде лучше работать в соответствии с ее соглашениями. Вы можете выполнять проверку в любом месте, где хотите - одна из причин, по которой вы не должны , заключается в том, что это противоречит нормальному потоку приложений S1.

...