Hallo Zusammen,
ich entwickel gerade eine Webanwendung nachdem ich nun die Datenbankkommunikation mit Hibernate endlich stehen habe kommt das nächste Problem.
Ich habe MyFaces mit Spring. Ich bekomme meine Start jsf auch angezeigt dort kann ich Werte eingeben und der von mir vorgesehene Controller wird auch aufgerufen. Soweit klappt alles. Die Datenbankabfrage in dem Controller funktioniert auch. Nun möchte ich eine Weiterleitung machen zur nächsten jsf Seite und das klappt nicht
. Es sieht so aus als wenn gar nichts passiert. Rufe ich die neue Seite aber direkt in der Adresszeile auf so funktioniert diese. Wer kann mir helfen?
Hier mal meine Code Auschnitte
web.xml
[XML]
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/service-config.xml
</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<filter>
<filter-name>MyFacesExtensionsFilter</filter-name>
<filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>MyFacesExtensionsFilter</filter-name>
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping>
<!-- Faces Servlet -->
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- Faces Servlet Mapping -->
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
[/XML]
service-config.xml
[XML]
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceUnitName" value="unitName" />
</bean>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>
<!-- Enables Springs annotation processing features -->
<bean
class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
<bean id="userService" class="mypackage.service.impl.UserServiceImpl">
<property name="userDAO" ref="userDAO" />
</bean>
<bean id="userDAO" class="mypackage.dao.db.UserDAOImpl" />
<bean id="loginController" class="mypackage.controllers.LoginController">
<property name="userService" ref="userService" />
</bean>
</beans>
[/XML]
meine faces-config.xml
[XML]
<navigation-rule>
<from-view-id>pages/login.xhtml</from-view-id>
<navigation-case>
<from-outcome>success</from-outcome>
<to-view-id>pages/success.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
<application>
<variable-resolver>
org.springframework.web.jsf.DelegatingVariableResolver
</variable-resolver>
[/XML]
Und Zum Schluss noch meinen LoginController
ich entwickel gerade eine Webanwendung nachdem ich nun die Datenbankkommunikation mit Hibernate endlich stehen habe kommt das nächste Problem.
Ich habe MyFaces mit Spring. Ich bekomme meine Start jsf auch angezeigt dort kann ich Werte eingeben und der von mir vorgesehene Controller wird auch aufgerufen. Soweit klappt alles. Die Datenbankabfrage in dem Controller funktioniert auch. Nun möchte ich eine Weiterleitung machen zur nächsten jsf Seite und das klappt nicht
Hier mal meine Code Auschnitte
web.xml
[XML]
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/service-config.xml
</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<filter>
<filter-name>MyFacesExtensionsFilter</filter-name>
<filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>MyFacesExtensionsFilter</filter-name>
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping>
<!-- Faces Servlet -->
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- Faces Servlet Mapping -->
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
[/XML]
service-config.xml
[XML]
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceUnitName" value="unitName" />
</bean>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>
<!-- Enables Springs annotation processing features -->
<bean
class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
<bean id="userService" class="mypackage.service.impl.UserServiceImpl">
<property name="userDAO" ref="userDAO" />
</bean>
<bean id="userDAO" class="mypackage.dao.db.UserDAOImpl" />
<bean id="loginController" class="mypackage.controllers.LoginController">
<property name="userService" ref="userService" />
</bean>
</beans>
[/XML]
meine faces-config.xml
[XML]
<navigation-rule>
<from-view-id>pages/login.xhtml</from-view-id>
<navigation-case>
<from-outcome>success</from-outcome>
<to-view-id>pages/success.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
<application>
<variable-resolver>
org.springframework.web.jsf.DelegatingVariableResolver
</variable-resolver>
[/XML]
Und Zum Schluss noch meinen LoginController
Java:
@SessionScoped
public class LoginController implements Serializable, InitializingBean{
private static final long serialVersionUID = 6937649352108165301L;
private User user;
private UserService userService;
public LoginController(){
}
public String login(){
user = userService.findUserByNameAndPassword(user.getUsername(), user.getPassword());
return "success";
}