I'm migrating to JSF 2.0.1 (mojarra 2.0.1) 'cause I'm using PrimeFaces 2.0., everything works fine until now....
I'm building my login page and when a push the <p:commandButton/> an error appear sayin' my parameter viewId is null.
I know this isn't a PrimeFaces problem, but I just migrated to JSF2 only because of PrimeFaces2, so could u help me?
I research a lot and tried a looot of things about couple days and nothing worked....
here's My Source xhtml:
Code: Select all
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.prime.com.tr/ui"
xmlns:ui="http://java.sun.com/jsf/facelets">
<f:view>
<head>
<f:loadBundle basename="br.com.webtraffic.big.i18n.formLogin" var="log" />
<script type="text/javascript" src="#{facesContext.externalContext.requestContextPath}/tools/js/functions.js"></script>
<link href="#{facesContext.externalContext.requestContextPath}/tools/css/styles.css" rel="stylesheet" type="text/css" />
</head>
<script language="JavaScript">
function openFormForgetPassword() {
window.open("formForgotPassword.html", "Esqueci minha senha", "height = 280, width = 420");
}
</script>
<body>
<h:form>
<h:panelGrid columns="3">
<h:outputLabel value="#{log.login} : " />
<h:inputText id="login" required="true" value="#{loginBean.login}" />
<p:message for="login" />
<h:outputLabel value="#{log.password} : " />
<h:inputSecret id="password" required="true" value="#{loginBean.password}" />
<p:message for="password" />
</h:panelGrid>
<h:outputText value="#{loginBean.errorMessage}" /><br />
<p:commandButton id="send" value="#{log.enter}" action="#{loginBean.checkLogin}"/>
</h:form><br />
<h:outputLink onclick="openFormForgetPassword()" ><h:outputText value="#{log.forgotPassword}" /></h:outputLink><br />
<h:outputLink value="#{facesContext.externalContext.requestContextPath}/wizard/customerSite?channel=direto"><h:outputText value="#{log.register}" /></h:outputLink>
</body>
</f:view>
</html>
Code: Select all
package br.com.webtraffic.big.controller;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.ValidatorException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import br.com.webtraffic.bid.domain.User;
import br.com.webtraffic.big.dao.PromotionalCodeDao;
import br.com.webtraffic.big.dao.UserDao;
import br.com.webtraffic.big.dto.UserSessionDTO;
import br.com.webtraffic.big.mail.WMCMailSender;
import br.com.webtraffic.big.util.CommonsValidators;
import br.com.webtraffic.big.util.GeneratePassword;
import br.com.webtraffic.big.util.MD5;
import br.com.webtraffic.big.util.Navigation;
import br.com.webtraffic.big.util.PropertiesReader;
@ManagedBean(name="loginBean")
@Controller("loginBean")
@Scope("request")
public class LoginController {
private String password;
private String login;
private String mail;
private String errorMessage;
private String returnMessage;
public String checkLogin() {
User user = userDao.checkUserPassword(login, MD5.encode(password));
if(user != null) {
saveLoggedInUserToSession(user);
user.setId(userSession.getId());
user.setLastAccess(new Date());
userDao.update(user);
return Navigation.SUCCESS;
} else {
errorMessage = pr.getProperties().getProperty("invalidData");
return Navigation.FAILURE;
}
}
Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<servlet>
<servlet-name>Resource Servlet Prime</servlet-name>
<servlet-class>org.primefaces.resource.ResourceServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Resource Servlet Prime</servlet-name>
<url-pattern>/primefaces_resource/*</url-pattern>
</servlet-mapping>
<context-param>
<param-name>com.sun.faces.allowTextChildren</param-name>
<param-value>true</param-value>
</context-param>
<description>BIG </description>
<display-name>BIG</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/bid-data.xml</param-value>
</context-param>
<context-param>
<param-name>com.sun.faces.expressionFactory</param-name>
<param-value>org.jboss.el.ExpressionFactoryImpl</param-value>
</context-param>
<context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.xhtml</param-value>
</context-param>
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>server</param-value>
</context-param>
<context-param>
<param-name>com.sun.faces.validateXml</param-name>
<param-value>true</param-value>
</context-param>
<!-- <context-param>-->
<!-- <param-name>javax.faces.CONFIG_FILES</param-name>-->
<!-- <param-value>/WEB-INF/managed-beans.xml</param-value>-->
<!-- </context-param>-->
<context-param>
<param-name>javax.faces.FACELETS_REFRESH_PERIOD</param-name>
<param-value>2</param-value>
</context-param>
<context-param>
<param-name>facelets.DEVELOPMENT</param-name>
<param-value>true</param-value>
</context-param>
<!-- <context-param>-->
<!-- <param-name>net.sf.jsfcomp.chartcreator.USE_CHARTLET</param-name>-->
<!-- <param-value>true</param-value>-->
<!-- </context-param>-->
<context-param>
<param-name>javax.faces.FACELETS_LIBRARIES</param-name>
<param-value>/WEB-INF/webtraffic.taglib.xml</param-value>
</context-param>
<!-- <servlet>-->
<!-- <servlet-name>XMLServlet</servlet-name>-->
<!-- <servlet-class>br.com.webtraffic.bid.servlet.GetXMLServlet</servlet-class>-->
<!-- <load-on-startup>2</load-on-startup>-->
<!-- </servlet>-->
<!-- <servlet-mapping>-->
<!-- <servlet-name>XMLServlet</servlet-name>-->
<!-- <url-pattern>/xml/*</url-pattern>-->
<!-- </servlet-mapping>-->
<servlet>
<servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value></param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
<url-pattern>/wizard/*</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>Resource Servlet</servlet-name>
<servlet-class>org.springframework.js.resource.ResourceServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Resource Servlet</servlet-name>
<url-pattern>/resources/*</url-pattern>
</servlet-mapping>
<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>*.html</url-pattern>
</servlet-mapping>
<!-- <servlet>-->
<!-- <servlet-name>Chartlet</servlet-name>-->
<!-- <servlet-class>net.sf.jsfcomp.chartcreator.Chartlet</servlet-class>-->
<!-- </servlet>-->
<!-- <servlet-mapping>-->
<!-- <servlet-name>Chartlet</servlet-name>-->
<!-- <url-pattern>*.chart</url-pattern>-->
<!-- </servlet-mapping>-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
<session-config>
<session-timeout>30</session-timeout>
</session-config>
<security-constraint>
<display-name>Restrict raw XHTML Documents</display-name>
<web-resource-collection>
<web-resource-name>XHTML</web-resource-name>
<url-pattern>*.xhtml</url-pattern>
</web-resource-collection>
<auth-constraint/>
</security-constraint>
<error-page>
<error-code>403</error-code>
<location>/denied.jsp</location>
</error-page>
</web-app>
Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<faces-config version="2.0" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xi="http://www.w3.org/2001/XInclude" 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">
<application>
<el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
<locale-config>
<default-locale>pt_BR</default-locale>
<supported-locale>en</supported-locale>
<supported-locale>es</supported-locale>
</locale-config>
<message-bundle>messages</message-bundle>
</application>
<navigation-rule>
<from-view-id>/tools/formLogin.xhtml</from-view-id>
<navigation-case>
<from-outcome>success</from-outcome>
<to-view-id>/tools/index.xhtml</to-view-id>
<redirect />
</navigation-case>
<navigation-case>
<from-outcome>failure</from-outcome>
<to-view-id>/tools/formLogin.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>/tools/formForgotPassword.xhtml</from-view-id>
<navigation-case>
<from-outcome>success</from-outcome>
<to-view-id>/tools/forgotPasswordOk.xhtml</to-view-id>
<redirect />
</navigation-case>
<navigation-case>
<from-outcome>failure</from-outcome>
<to-view-id>/tools/formForgotPassword.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
</faces-config>