Struts2 引发空指针异常

Struts2 引发空指针异常,struts2,Struts2,在我的Struts应用程序中,Jsp中有一个注册表单。然后,通过action类将输入的值存储到mysql数据库中 用于向mysql Db插入值的操作类(Register.java)是: package com.login; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Stat

在我的Struts应用程序中,Jsp中有一个注册表单。然后,通过action类将输入的值存储到mysql数据库中

用于向mysql Db插入值的操作类(Register.java)是:

 package com.login;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import com.opensymphony.xwork2.ActionSupport;

public class Register extends ActionSupport {



String regname;
String regpass;
String regmail;

public String getRegname() {
    return regname;
}

public void setRegname(String regname) {
    this.regname = regname;
}

public String getRegpass() {
    return regpass;
}

public void setRegpass(String regpass) {
    this.regpass = regpass;
}

public String getRegmail() {
    return regmail;
}

public void setRegmail(String regmail) {
    this.regmail = regmail;
}


Connection con;
 Statement st;
 ResultSet rs;

public void connect(){

    try {

        Class.forName("com.mysql.jdbc.Driver");
        con=DriverManager.getConnection("jdbc:mysql://localhost:3306/vijay","root", "pwd");

        //*.getConnection("jdbc:mysql://localhost:3307/shoppingmall","root", "vijay");      
        st=con.createStatement();*

    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    } catch (SQLException e) {          
        e.printStackTrace();
    }
}

public void queree(){
    try {
        //*st.executeUpdate("insert into prodet (name,password,email) values('"+this.getRegname()+"','"+this.getRegpass()+"','"+this.getRegmail()+"');");*

        st.executeUpdate("insert into prodet (name,caty) values('"+this.getRegname()+"','"+this.getRegpass()+"');");
    } catch (SQLException e) {

        e.printStackTrace();
    }
}


@Override
public String execute() throws Exception {
    this.connect();
    this.queree();

    return SUCCESS;
}
}
Jsp:

<s:form action="/loginns/register" cssStyle="float:right; background-color:lightgreen" method="POST">
<h5 align="center">Register here</h5>   <br>
<s:textfield name="regname" label="UserName"></s:textfield>
<s:textfield name="regpass" label="Password"></s:textfield>
<s:textfield name="regmail" label="email"></s:textfield>
<s:submit align="center" value="Register"></s:submit>
</s:form>
<package name="Login" namespace="/loginns" extends="struts-default">
<action name="register" class="com.login.Register">
        <result name="error">/index.jsp</result>
        <result name="success">/Registered.jsp</result>
    </action>

</package>

在这里注册
Struts.xml:

<s:form action="/loginns/register" cssStyle="float:right; background-color:lightgreen" method="POST">
<h5 align="center">Register here</h5>   <br>
<s:textfield name="regname" label="UserName"></s:textfield>
<s:textfield name="regpass" label="Password"></s:textfield>
<s:textfield name="regmail" label="email"></s:textfield>
<s:submit align="center" value="Register"></s:submit>
</s:form>
<package name="Login" namespace="/loginns" extends="struts-default">
<action name="register" class="com.login.Register">
        <result name="error">/index.jsp</result>
        <result name="success">/Registered.jsp</result>
    </action>

</package>

/index.jsp
/Registered.jsp
一切正常。单击Register按钮,它将成功显示结果页面。没有抛出异常。
但在Db上,值不会更新。在2个Dbs中尝试,但结果相同。(斜体代码用于Mysql workbench 6.0中的Db)我遗漏了什么?

必须调用executeUpdate进行更新和插入,executeQuery仅用于选择


将方法更改为st.executeUpdate()时,它会在“querye”方法中引发NullPointer异常。斜体字在代码块上不起作用。发现哪个字段为空以及为什么为空。在调用方法之前放置printlog并打印变量值。还要使用变量名,而不是
this.getter
?这些字符串值返回null。将
private
添加到变量中,然后查看Firebug NET发送的内容panel@VijayaRagavan在将其封送到db之前,您是否尝试将其保存在内存中的某个位置?谢谢,朋友。现在它会引发空指针异常。与Struts相关。