【问题标题】:JSF null pointer exceptionJSF 空指针异常
【发布时间】:2013-01-21 18:29:31
【问题描述】:
    <pre><h:form>
        <h:panelGrid>
            <h:outputLabel value="Username: " style="font-weight:bold" />
            <h:inputText value="#{user.username}" />
            <h:outputLabel value="Password: " style="font-weight:bold" />
            <h:inputSecret value="#{user.password}" />
            <h:commandButton value="Submit" action="#{user.doLogin()}" />
        </h:panelGrid>
    </h:form>
</pre>

有人可以解释我为什么这会导致异常吗?这是我的第一个 JSF 应用程序。

ava.lang.NullPointerException
    at userSession.getUsername(userSession.java:45)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)

【问题讨论】:

  • userSession#getUsername 方法中存在错误。请提供托管 bean 代码以获得更好的帮助。另外,指定您使用的是 JSF 1.x 还是 JSF 2.x

标签: jsf


【解决方案1】:

检查 getUserName 方法的第 45 行。可能该方法的参数有一个null 引用,其中。意味着一个 setter 给出一个空值。也尝试在doLogin() 方法中获取您的输入文本

FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
Map<String, String> parameterMap = (Map<String, String>) externalContext.getRequestParameterMap();
username=parameterMap.get("id_of_your_inputfield");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-12
    相关资源
    最近更新 更多