Как отделить разметку от кода приложения при создании веб-сайта на Java? - PullRequest
0 голосов
/ 20 января 2009

Я веб-разработчик .NET, которого только что попросили создать небольшой демонстрационный веб-сайт с использованием среды IDE NetBeans 5.5. До этого момента у меня не было опыта работы с Java.

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

Использование файлов JSP выглядит очень похоже на старые времена классического ASP. С другой стороны, сервлеты выглядят полезными, но, похоже, требуют много разметки для потока вывода, что меня тоже не устраивает.

Существует ли эквивалент модели выделенного кода ASP .NET или какие-либо другие стратегии разделения разметки и кода? Можно ли сохранить разметку в JSP, а затем использовать сервлет из JSP?

Ответы [ 7 ]

3 голосов
/ 20 января 2009

Нельзя сделать что-то похожее с кодом ASP.NET, используя чистые технологии Java EE. Вам необходимо использовать инфраструктуру MVC, такую ​​как Spring MVC или Struts. Идея состоит в том, что вы создаете свой контроллер (класс Java) и страницу JSP и настраиваете действие, чтобы связать страницу JSP с контроллером.

Это не так просто, как ASP.NET, поскольку требует настройки и внешней среды.

В Netbeans встроена структура JSF. Взгляните на этот учебник .

2 голосов
/ 20 января 2009

Смысл Java в том, что он на самом деле не идет в комплекте с вещами так же, как это делает .NET ... вы обычно ищите товары.

Это делает запуск веб-приложений на Java пугающим, потому что есть так много вариантов. Многие из них построены из JSP, что является плюсом.

Если вы настроены на использование ванильных JSP, вы не будете хорошо проводить время. В противном случае я бы предложил Wicket, Stripes или Spring MVC.

Полосы, вероятно, самые простые из трех (Spring немного сложнее, а Wicket концептуально отличается от двух других). Сказав, что Spring MVC, вероятно, является наиболее используемым из трех ..

Все нашивки на самом деле - это JSP и ActionBeans. Бины действий - это Java-классы, которые содержат действия, которые представляют собой методы, выполняющие ваши действия. Эти классы ActionBean также содержат данные для текущей страницы.

Эта страница содержит больше информации о Полосах.

1 голос
/ 21 января 2009

Если вы хотите получить что-то быстро (отмечу, что вы создаете демонстрационную версию), я бы, возможно, отказался от веб-фреймворков Java и просто использовал решение с сервлетами в сочетании с простым решением на основе шаблонов.

Либо Скорость , либо Freemarker обеспечит возможность отделения вашей разметки от вашего кода. Скорость проще, чем Freemarker. Freemarker более мощный, чем Velocity.

Я не разочарован в различных упомянутых рамках. Просто если у вас короткие временные рамки, и вы с удовольствием запрограммируете интерфейс сервлета для этого требования, то приведенное выше может обеспечить самое быстрое / самое грязное решение: -)

1 голос
/ 20 января 2009

Для простого веб-сайта я бы использовал Struts и Tiles и использовал бы библиотеки тегов, которые они предоставляют, чтобы JSP выглядели аккуратно и размеченными, и разделял код на Действия в Контроллере - Действие - это просто блок кода, который вызывает сервлет Struts после выполнения своей работы.

Чтобы освоить основы Struts 2 и Tiles, у вас не займет много времени, вы можете легко получить его за день.

И да, сервлеты - довольно простой уровень для написания таких систем, и в них легко получить генераторы HTML, что, как вы сказали, явно не правильно. Я думаю, вам нужно поместить больше значений в объекты запроса и сеанса, а затем отформатировать их в JSP.

Сила здесь в том, что вы можете выбрать свою инфраструктуру MVC в соответствии с масштабом вашего приложения, но при этом иметь доступ к необработанным сервлетам, если вам потребуются их для определенных действий (например, одна вещь, которую я делал в прошлом, создавала и обслуживала файл Excel из значений в базе данных).

1 голос
/ 20 января 2009

Возможно, вы захотите взглянуть на Библиотеки пользовательских тегов в JSP

1 голос
/ 20 января 2009

Калитка имеет "правильную разметку / логическое разделение" (как они выразились).

0 голосов
/ 20 января 2009

Вы можете использовать this и делать то же самое, что вы делали в .NET! Это очень хороший MVC-фреймворк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...