spring将对象传递给jsf视图

时间:2015-04-05 02:57:16

标签: java spring jsf

我有一个主要使用Facebook数据填充的类,但缺少必须从表单数据中填充的两个属性。

这是表格:central/cadastro.xhtml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html"
  xmlns:f="http://xmlns.jcp.org/jsf/core"
  xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">

<h:body> 
    <h:graphicImage value="https://graph.facebook.com/${usuario.id}/picture" /> Olá, ${usuario.firstName} ${usuario.lastName}
    <h:form id="formCadastro" prependId="false"> 
        <h:panelGrid columns="2">

            Login: <h:inputText label="Login" value="#{usuarioFacebook.userid}" /> 
            Senha: <h:inputSecret label="Senha" value="#{usuarioFacebook.password}" />
            <h:commandButton value="Salvar" action="${usuarioFacebookDAO.persist(usuario)}"/>
        </h:panelGrid>
    </h:form> 
</h:body> 
</html>

此表单通过ModelAndView spring * *方法显示,传递UsuarioFacebook类型的对象,其名称为usuario

@RequestMapping("/loginfbresponse")
public ModelAndView logarComFacebook(String code) throws MalformedURLException, IOException{

  UsuarioFacebook userFB = loginFacebook.obterUsuarioFacebook(code);
    System.out.println("Buscando email " + userFB.getEmail() + " no banco...");
      UsuarioFacebook userFBDB = usuarioFacebookDAO.find(userFB.getId());
      if(userFBDB == null){
        if(userFB.getVerified()){
          //usuarioFacebookDAO.persist(userFB);
          System.out.println("Usuário " + userFB.getEmail() + " foi direcionado para cadastro.");

          ModelAndView mv = new ModelAndView("central/cadastro");
          mv.addObject("usuario", userFB);
          return mv;
        } else {
          System.out.println("Usuário " + userFB.getEmail() + " não é uma conta ativa.");
          ModelAndView mv = new ModelAndView("central/containvalida");
          return mv;
        }                    
      } else {
        System.out.println("Usuário " + userFB.getEmail() + " foi encontrado!");
        ModelAndView mv = new ModelAndView("central/home");
        mv.addObject("usuario", userFBDB);
        return mv;
      }
}

返回为java.lang.NullPointerException,因为commandButton未将对象usuario传递给persist (),为什么?

两个UsuarioFacebookDAO为UsuarioFacebook are noted as ManagedBean`。

0 个答案:

没有答案