На мой взгляд, Spring
и JSF
- оба могут быть использованы только отлично. Это, конечно, в основном зависит от ваших требований и предпочтений использования этих фреймворков.
Весна - это очень хорошие способы transactions management, dependency injection, security и многие другие функции, однако - простой JSF
не обеспечивает такого рода особенностей из коробки, но JSF имеет очень хороший способ рендеринга видов. Таким образом, эти функции из обеих фреймворков, смешанных друг с другом, могут привести к простоте.JSF имеет разнообразие это рамки, которые построены на нем, как:
На мой взгляд, вы могли бы упростить разработку взглядов, если у вас использовали JSF
. JSF имеет ManagedBean (ы), который в зависимости от вашей конфигурации обслуживает ваши запросы, например Контроллеры весны.
Фактическая конфигурация довольно проста. Вы должны иметь:
faces-config.xml
файл, который содержит SpringBeanFacesELResolver:
<?xml version='1.0' encoding='UTF-8'?>
<faces-config xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
version="2.0">
<application>
<el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
</application>
<navigation-rule>
<!-- your rules here -->
</navigation-rule>
</faces-config>
Spring applicationCotext.xml
файл. Обычный весенний конфиг, ничего JSF
специфический.
Ваш web.xml
, который должен выглядеть примерно так:
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<!-- other config -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>WEB-INF/applicationContext.xml</param-value>
</context-param>
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Production</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
<!-- other of config -->
</web-app>
Самая красивая крутая вещь в JSF
является View Scope, которые будут потеряны по умолчанию, если вы использовали JSF
с Spring
, но, безусловно, вы дону Не хочу терять его. This объясняет, как сделать View Scope работы в JSF
и Spring
интеграции.
Если я буду создавать какое-то приложение с нуля, я бы выбрал эти два фреймворка и объединил их вместе, но это только мое мнение. Надеюсь, это облегчит вам кое-что.
Благодарим за быстрый ответ. Могу ли я узнать, почему я не должен использовать его вместе? –
они конкурируют друг с другом в некоторых точках –
Можно ли интегрировать оба или нет? любые другие альтернативы? –