Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 验证在Struts2中登录期间获取NullPointerException的方法_Java_Jsp_Validation_Struts2 - Fatal编程技术网

Java 验证在Struts2中登录期间获取NullPointerException的方法

Java 验证在Struts2中登录期间获取NullPointerException的方法,java,jsp,validation,struts2,Java,Jsp,Validation,Struts2,我正在进行编程验证,当我单击submit按钮时,已调用validate方法,但它显示NullPointerException。它无法验证,但我无法找到我的错误 index.jsp: <%@ taglib uri="/struts-tags" prefix="s"%> <s:actionerror /> <s:form action="insert"> <s:textfield name="" key="user.name" />

我正在进行编程验证,当我单击submit按钮时,已调用validate方法,但它显示
NullPointerException
。它无法验证,但我无法找到我的错误


index.jsp:

<%@ taglib uri="/struts-tags" prefix="s"%>

<s:actionerror />
<s:form action="insert">
    <s:textfield name="" key="user.name" />
    <s:textfield name="" key="user.pass" />
    <s:submit value="login" />
</s:form>

struts.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
    <package name="a" extends="struts-default">
        <action name="insert" class="jack.UserLogin">
            <result name="success">/success.jsp</result>
            <result name="error">/error.jsp</result>
            <result name="input">/index.jsp</result>
        </action>
    </package>
</struts>

Mybundle.properties:

 struts.custom.i18n.resources=Mybundle
user.name=username
user.pass=password
user.wrong=enter username
pass.wrong=enter password

UserLogin.java的第29行有一个空指针异常。假设这是一条直线:

if (this.username.equals("") || username.length() == 0) {

这意味着
username
为空。不能调用空变量(在本例中为
用户名
)的方法(在本例中为
等于
)。您将得到所描述的错误。现在的情况是struts没有正确地为这些变量赋值。您需要首先解决这个问题。

在验证之前,请检查validate方法中的null。见下文

if(this.username!=null && this.password != null) 

框架无法为变量设置值,jsp应如下所示

<s:textfield name="username" key="user.name" />
<s:textfield name="password" key="user.pass" />


希望这能解决您的问题。

@downvoter我在这里问错了什么,我在登录时遇到了一些问题,所以我在这里发布了我的查询,据我所知我在这里没有问错任何问题,请告诉我放下投票的原因。您是否为username和password变量创建了getter和setter方法?如果没有,请创建getter和setter方法并检查一次。不要将stacktarce作为图像发布,编辑问题并将其替换为文本。
<s:textfield name="username" key="user.name" />
<s:textfield name="password" key="user.pass" />