Я изучал JAX-RS в последнее время, потому что мне действительно нравятся платформа Java и УСПОКОИТЕЛЬНЫЙ стиль веб-разработки. Я читал много об использовании JAX-RS для создания УСПОКОИТЕЛЬНЫХ веб-сервисов, но действительно ли возможно использовать JAX-RS для создания УСПОКОИТЕЛЬНЫХ веб-сайтов? Я предполагаю более конкретно, действительно ли возможно использовать JAX-RS в качестве контроллера (для получения требуемых данных из сервера) и затем передний привод к механизму представления для рендеринга соответствующего HTML?
Я гуглил вокруг, но не нашел ресурсов, которые показывают Вам, как сделать это.
Спасибо за любое понимание/справку.
Я думаю, у вас возникли трудности с поиском в Google, потому что немногие люди этим занимаются. JAX-RS был разработан для веб-сервисов, поэтому разработчики не думают использовать его в качестве контроллера для веб-приложений. Однако нет никаких причин, по которым это не сработает.
Посмотрите это сообщение в блоге: JAX-RS как единственная веб-среда Java, которая управляет ими всеми?
Я думаю, что это именно то, что вы ищете.
Дбырне прав в том, что этим почти никто не занимается. Обычно для вывода информации в JSON или XML используется JAX-RS. Затем вы представляете себе веб-браузер с фреймворком RIA (например, Ext JS ), который обрабатывает манипуляции с DOM и ввод данных, как они были получены в форме JSON / XML. Это мощный подход. Вы можете написать для службы несколько клиентов, возможно, не являющихся браузером, и все они будут анализировать один и тот же JSON / XML. Вы можете писать «одностраничные» веб-приложения, в которых весь обмен информацией происходит через AJAX после начальной загрузки страницы. Я призываю вас изучить и рассмотреть его сильные и слабые стороны в контексте вашей конкретной проблемы.
Возвращаясь к вашему вопросу: ответ - «вроде как». Эта функциональность не предоставляется напрямую спецификацией JAX-RS (начиная с версии 1.1). Однако в эталонной реализации JAX-RS Jersey он равен через объект ответа Viewable
. См. Это сообщение в блоге, если вы хотите продолжить расследование: http://blogs.oracle.com/sandoz/entry/mvcj . Хочу отметить, что у меня нет опыта работы с этой стороной Джерси. Было приятно писать веб-службы, возвращающие XML / JSON, с помощью Джерси, но я не могу говорить об этом бизнесе по созданию шаблонов HTML на стороне сервера.
Изменить : dbyrne отредактировал свой ответ, включив в него сообщение в блоге, указывающее на упомянутый выше. Думаю, мы оба пришли примерно к одному ответу.
Если вы действительно хотите полагаться только на JAX-RS для вашего веб-фреймворка, Jersey может быть вашим лучшим выбором. Имейте в виду, что возможности, которые вы получите от него, будут минимальными, и вы, очевидно, не получите все колокольчики и свистки, как в JSF, Wicket и т.д.
Если вы знаете, что ваше веб-приложение будет полагаться на Spring, возможно, вам стоит рассмотреть возможность использования Spring MVC 3.0. Он обеспечивает схожие с restful веб-сервисы и предоставляет вам лучшие возможности, так что вам не придется реализовывать большинство из них самостоятельно. Конечно, Spring MVC 3.0 не является реализацией JAX-RS, и, судя по тому, что сказал разработчик Spring, похоже, что они никогда не сделают Spring MVC реализацией JAX-RS, поскольку уже существует довольно много стабильных реализаций. Тем не менее, синтаксис, на мой взгляд, довольно схож, или, по крайней мере, я смог понять их довольно быстро, несмотря на то, что я использую Jersey уже довольно давно.