当前位置: 首页 > 知识库问答 >
问题:

标识符“sql bean”解析为null

墨雨华
2023-03-14

我目前正在为JSF网站开发一个sql类。但我在尝试访问我的类时遇到了一个恼人的错误:

action="#{sqlBean.createAccount}": Target Unreachable, identifier 'sqlBean' resolved to null

null

package com.tutorial;

import java.sql.*;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

@ManagedBean(eager = true)
@RequestScoped

public class SqlBean {

    Connection  connec;
    Statement   flux;
    ResultSet   res;

    SqlBean()
    {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            connec = DriverManager.getConnection("jdbc:mysql://localhost/epiMarket", "root", "seN?/g0u");
            flux = connec.createStatement();
        }
        catch(Exception e)
        {
            System.out.print("imposible to connect sql");
        }
    }

    ResultSet command(String cmd)
    {
        try {
            res = flux.executeQuery(cmd);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return res;
    }

    public String   createAccount()
    {
        try {
            flux.executeQuery("insert into epi_user values('', #{registerBean.name}, #{registerBean.surname}, '', #{registerBean.date}, #{registerBean.phone}, #{registerBean.login}, #registerBean.password)");
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return ("Register");
    }
} 

null

    <!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:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core">

<ui:composition template="/WEB-INF/templates/BasicTemplate.xhtml">
    <ui:define name="content">
    <div id="formulaire">
    <h:form>
        <h:panelGrid columns="6">
        <h:outputText value="Name"></h:outputText>
        <h:inputText value="#{registerBean.name}"></h:inputText>
        <h:outputText value="Surname"></h:outputText>
        <h:inputText value="#{registerBean.surname}"></h:inputText>
        <h:outputText value="Birth (format : dd/mm/yyyy)"></h:outputText>
        <h:inputText value="#{registerBean.date}"></h:inputText>
        <h:outputText value="Login"></h:outputText>
        <h:inputText value="#{registerBean.login}"></h:inputText>
        <h:outputText value="Password"></h:outputText>
        <h:inputSecret value="#{registerBean.password}"></h:inputSecret>
        <h:outputText value="retype password"></h:outputText>
        <h:inputSecret value="#{registerBean.passwordVerif}"></h:inputSecret>
        <h:commandButton value="Register" action="#{sqlBean.createAccount}"></h:commandButton>
    </h:panelGrid>
    </h:form>
    </div>
    </ui:define>
</ui:composition>
</html>

null

null

这里是stacktrace:

exception

javax.servlet.ServletException: java.lang.NullPointerException
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:321)
cause mère

javax.faces.el.EvaluationException: java.lang.NullPointerException
    javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:98)
    com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:98)
    javax.faces.component.UICommand.broadcast(UICommand.java:311)
    javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:781)
    javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1246)
    com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:77)
    com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
    com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:308)
cause mère

java.lang.NullPointerException
    com.tutorial.SqlBean.createAccount(SqlBean.java:44)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    java.lang.reflect.Method.invoke(Method.java:622)
    org.apache.el.parser.AstValue.invoke(AstValue.java:278)
    org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:274)
    com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:102)
    javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:84)
    com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:98)
    javax.faces.component.UICommand.broadcast(UICommand.java:311)
    javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:781)
    javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1246)
    com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:77)
    com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
    com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:308)

共有1个答案

欧阳翔
2023-03-14

异常的原因很可能是您的

flux = connec.createStatement();

没有被处决。通过从类的构造函数中移除try-catch块,您将会发现这一点。原因我只能推测--也许需要部署所需的MySQL/JDBC JAR?

 类似资料:
  • 我正在尝试将JSF2.2与Spring4和Spring Data JPA(Hibernate)集成。按下“保存”按钮时出现以下异常: Eclipse:Oxygen.3A释放版(4.7.3A) 在使用时,导入为: 在使用时,导入为: 在使用时,导入为: } pom.xml applicationContext.xml: xhtml:

  • 问题内容: 我刚刚将Xcode更新为6.3版本。 除了我必须进行的所有修复(主要是)外,我还有一些警告刚刚出现(这很奇怪,因为它声明自iOS 8.0以来)。 我的密码 现在显示警告 好吧,那么我会改变的 现在我得到一个错误,说: 我感到困惑,有人可以向我解释什么地方出了问题以及如何解决? 问题答案: 使用。NSCalendar是一个本机的Objective-C框架,错误消息并不迅速。

  • 我有一个非常简单的项目。它是使用Xcode 8.0在Swift 3.0上编写的命令行工具。这个程序是: 这工作得很好,并在控制台中打印“a”,但让我们做这个程序更复杂: 和线 被标记为错误 使用未解析的标识符“b” 我们可以让事情变得更简单: 再一次,线 被标记为错误 未解析标识符“a”的使用 我不是新手,我明白我可以很容易地修复这个错误,就像把所有变量放在程序的开头一样。问题是:为什么会发生这种

  • 本文向大家介绍python标识符命名规范原理解析,包括了python标识符命名规范原理解析的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了python标识符命名规范原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 简单地理解,标识符就是一个名字,就好像我们每个人都有属于自己的名字,它的主要作用就是作为变量、函数、类、模块以及其他

  • 当我运行我的应用程序时,它突然显示未解析标识符的错误。

  • 问题内容: 这里有什么问题? 这抱怨: 问题答案: 将你的代码放在一个方法中。 尝试这个: 然后从你的IDE“运行”该类