2014-02-05 4 views
0

В моем приложении Struts есть форма Register в Jsp. Значения enterd в нем затем сохраняются в mysql Db с помощью класса действий.Исключение Null Pointer Исключение выбрано

Класс действия (Register.java) для вставки значений в БД MySQL является:

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; 
} 
} 

СПЯ:

<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> 

Struts.xml:

<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> 

Все работает нормально. При нажатии кнопки «Регистрация» она успешно отображает результирующую страницу. Исключения не выбрасываются. Но на Db значения не обновляются. Пробовал в 2 Dbs, но тот же результат. (Этот код выделен курсивом для Db в рабочем месте Mysql 6.0) Что я пропущу?

+0

Об изменении метода к st.executeUpdate(), он выбрасывает NullPointer исключение в методе 'queree'. – VijayaRagavan

+0

Курсив не работает над кодовыми блоками. Узнайте, какое поле является нулевым и почему. Поместите printlog перед вызовом методов и напечатайте значения переменных. Также используйте имена переменных, а не 'this.getter' ...? –

+0

Те значения String возвращаются null. – VijayaRagavan

ответ

Смежные вопросы