Есть ли способ улучшить безопасность типов JSP? - PullRequest
4 голосов
/ 11 июля 2011

Я добавил компиляцию JSP в свой проект, но тем не менее компилятор не проверяет неправильные макросы, такие как $ {object.value}, где у объекта нет метода получения значения.

Интересно, есть линекоторые другие способы направить компилятор JSP (jspc), чтобы сделать это.Я рассматривал некоторые варианты: 1. Явно объявить тип объекта внутри JSP (jsp: useBean?).2. Использование конструкции <% =%> вместо $ {}

Но ничего из этого не помогло.

Буду признателен, если кто-нибудь поделится своим опытом в этой области.

Ответы [ 2 ]

4 голосов
/ 11 июля 2011

Используйте <jsp:useBean id="yourId" scope="request" type="com.blah.YourClass"/> и прекомпилируйте JSP.

Читайте эту статью для более подробной информации.

0 голосов
/ 11 июля 2011

Нет, если вы не хотите радикально изменить дизайн JSP.

HTML-код, который он генерирует, также не является безопасным для типов.

Лучшее, что вы можете сделать, это использовать MVC Model-2, где у вас есть сервлеты, работающие вместе с JSP. Пусть сервлет (ы) беспокоится о привязке, проверке и проверке того, что нужные объекты попадают в область видимости страницы. Страницы должны касаться только отображения.

Идея сценария ужасна. Никто не должен помещать код скриптлета в JSP. Учитесь и используйте JSTL.

...