0

こんにちは、Java Struts の初心者です。単純な登録フォームを作成していますが、フォームを送信した後、null がデータベース テーブルに挿入されます。フォーム クラス名を RegistrationForm.java として作成しました。

public class RegistrationAction extends Action {    
     private Connection con = null;    
     public ActionForward execute(ActionMapping mapping, ActionForm form,  
                HttpServletRequest request, HttpServletResponse response)  
                throws Exception {  

            ActionErrors errors = new ActionErrors();  

            RegistrationForm objReg = new RegistrationForm();
            String userName = (String) objReg.getTxtusername();
            String userPass = (String) objReg.getTxtpassword();  

            Class.forName("com.mysql.jdbc.Driver").newInstance();    
            con = DriverManager.getConnection("jdbc:mysql:///test", "root", "");    
            if (!con.isClosed()) {   
                PreparedStatement ps = (PreparedStatement)             con.prepareStatement("INSERT   >INTO tblUserdetails(fldUsername,fldPassword) VALUES (?,?) ");  

                ps.setString(1, userName);  
                ps.setString(2, userPass);  

                ps.execute();  
            } else {  
                errors.add("SQL", new ActionMessage("error.SQLConnectivity"));  
            }  
            return mapping.findForward(SUCCESS);  
       }  
}

package com.vaannila.form;

import org.apache.struts.action.ActionForm;

public class RegistrationForm extends ActionForm {
    private String txtusername;
    private String txtpassword;
    private String txtrepassword;
    private String txtemail;

    public String getTxtusername() {
        return txtusername;
    }

    public void setTxtusername(String txtusername) {
        this.txtusername = txtusername;
    }

    public String getTxtpassword() {
        return txtpassword;
    }

    public void setTxtpassword(String txtpassword) {
        this.txtpassword = txtpassword;
    }
}
4

3 に答える 3

0

まったく新しいオブジェクトRegistrationFormを作成したため、値はありません。そのはず

RegistrationForm objReg = (RegistrationForm) form;
于 2013-01-22T16:06:15.020 に答える
0

あなたは新しいものを作成していますRegistrationForm

RegistrationForm objReg = new RegistrationForm();

フレームワークによって提供される既存のフォームを使用する場合:

RegistrationForm objReg = (RegistrationForm) form;

objRegやっかいな名前です。

于 2013-01-22T16:06:24.383 に答える
0

フォーム フィールド名と ActionForm で提供する名前は同じである必要があります。例えば:

helloWorld.jsp

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Hello World</title>
</head>
<body>
<form action="login.do">
<pre>
User Name : <input type="text" name="uname"/>
Password : <input type="password" name="pass"/>
<input type="submit" value="LogIN">
</pre>
</form>
</body>
</html>

helloWorldForm.java

private String uname,pass;

and in struts ur entry should like

    <action path="/login" type="com.app.core.biswa.AppLoginAction" name="helloWorldForm" scope="session" validate="true" input="/helloWorld.jsp">

それは間違いなくうまくいくでしょう。

于 2013-12-25T15:35:28.427 に答える