2013-02-21 1 views
5

Есть ли что-то более безопасное, чем JSP? Я не нашел значимых ответов через Google. В настоящее время мы используем среду Spring MVC и JSP для рендеринга HTML. Я ненавидел динамический характер JSP-рендеринга, поскольку вы ссылаетесь на модель типа ${model.someAttribute}, но не можете сказать, доступен ли этот атрибут в данном модуле или задает тип модели, которую ожидает шаблон. Очень сложно реорганизовать геттеры моделей, поскольку Eclipse не знает, какие шаблоны используют модель, а также не могут связывать геттеры с аксессуарами свойств в шаблонах.Любые типы безопасных альтернатив шаблону JSP

Есть ли там технология шаблонов, которая является менее уродливой, чем выплескивание HTML-кода через императивный код и более безопасный тип/компиляция, чем JSP?

+0

Возможно, попробуйте IntelliJ? – irreputable

+0

@irreputable, он как-то поддерживает рефакторинг имен свойств bean и также заботится о шаблонах? – d56

ответ

0

Lift (на основе Scala) предлагает очень приятную модель с хорошим разделением компоновки HTML из реального кода приложения (так называемые фрагменты). В то время как барьер для входа может выглядеть высоко вначале, выигрыш действительно большой в несколько более долгосрочной перспективе. Один большой потенциал заключается в том, что он работает на JVM, поэтому вы можете повторно использовать большинство своих Java-библиотек и другого кода.

+0

Кажется, что он не является компилируемым или есть инструменты, удостоверяющие, что вы не имеете доступа к неопределенным свойствам и инструментам, которые помогают при реорганизации имен свойств? – d56

+0

@ d56 Собственно, это так. В своем HTML вы просто отмечаете свои элементы, которые приложение должно динамически заполнять специальными классами или идентификаторами CSS. Код, который их заполняет, является регулярным кодом Scala, который компилятор и ваша IDE проверяют в полной мере, включая безопасность типов. –

0

Я считаю, что цели JXT включают в себя как безопасность безопасности XSS, так и тип модели безопасности, и она была разработана для того, чтобы легко перейти с JSP.

Их описание pipeline объясняет, что их выражения более тесно связаны с выражениями Java, поэтому вы получите ошибки типа Java-esque, если ваши выражения имеют несоответствие типов.

+0

Проблема OP - это поддержка инструмента для статического анализа, рефакторинга, завершения кода и т. Д. – irreputable

+0

@ rereputable, я интерпретировал «мне просто интересно, есть ли что-то более безопасное, чем JSP ...» и «Должна быть какая-то более статическая технология шаблонов там ... », как просят альтернативы JSP. Если вы считаете, что я ошибаюсь, спросите плакат для уточнения. –

2

Вы можете использовать подсказки типа, например. type attribute в jsp: useBean и в объявлениях атрибутов файлов тегов JSP (и, вероятно, в других местах, таких как теги JSTL). IntelliJ затем сделает для вас все хорошие статические типы (точные предложения о завершении кода, рефакторинг, поиск, быстрый просмотр javadoc и т. Д.).

Я недавно написал об этом в контексте JSP tag files.

0

На самом деле он не использовался, но Twirl (https://www.playframework.com/documentation/2.5.x/JavaTemplates) называет себя «безопасным шаблоном для шаблонов на основе Scala» (по-видимому, может использоваться в Play для Java).

Цитата:

Безопасный тип шаблона движок, основанный на Scala Play поставляется с Twirl, мощный шаблонизатор Scala на основе, дизайн которого был вдохновлен ASP.NET Razor. В частности, это:

компактный, выразительный и жидкий: он минимизирует количество символов и нажатие клавиш, требуемых в файле, и обеспечивает быстрый рабочий процесс с жидкостью. В отличие от большинства синтаксисов шаблонов, вам не нужно прерывать кодирование, чтобы явно указывать серверные блоки в вашем HTML. Парсер достаточно умен, чтобы сделать это из вашего кода. Это позволяет действительно компактный и выразительный синтаксис, который является чистым, быстрым и забавным.

Прост в освоении: он позволяет быстро стать продуктивным, с минимальными понятиями. Вы используете простые конструкции Scala и все ваши существующие навыки HTML.

Не новый язык: мы сознательно решили не создавать новый язык. Вместо этого мы хотели, чтобы разработчики Scala использовали свои существующие навыки языка Scala и доставляли синтаксис разметки шаблона, который позволяет создать потрясающий рабочий процесс построения HTML.

редактируемый в любом текстовом редакторе: он не требует специального инструмента и позволяет вам быть продуктивным в любом простом текстовом редакторе.

Смежные вопросы