2

struts2Webアプリケーションのjspページで2つのstruts/dojodatetimepickerを使用しています。これらにより、日付を選択して適切に表示できますが、フォームを送信して、jspフォームのdatetimepickerの名前と同じ名前の変数(getterおよびsetterを使用)のdatetimepickers値にアクセスすると、null値が返されます。

strutsアクションでdatetimepickers値を取得し、それらをMySQLデータベースに保存する方法が必要です

私のjspページ->

 <%@taglib prefix="sx" uri="/struts-dojo-tags"%>
 <html>
 <head>
 <sx:head />
 </head>
 <body>
 <form name="cFrom" method="post" action="saveForm"  
 enctype="multipart/form-data">
  state Date: <sx:datetimepicker formatLength="medium" value="%{'today'}"     
  name="sDate"></sx:datetimepicker><br/>
  End Date: <sx:datetimepicker formatLength="medium" name="eDate">    
 </sx:datetimepicker><br/>
 <button type="submit">Save</button>
 </form>
 </body>
 </html>

アクションクラス->

 import java.util.*;
 public class saveFormAction extends ActionSupport{

private static final long serialVersionUID = 1L;
private Date sDate;
    private Date eDate;
    public Date getsDate() {
    return sDate;
}

public void setsDate(Date sDate) {
    this.sDate = sDate;
}

public Date geteDate() {
    return eDate;
}

public void seteDate(Date eDate) {
    this.eDate = eDate;
}
    public String saveForm() throws SQLException{           
    Connection con=DBConnect.makeConnection();
    PreparedStatement pst=con.prepareStatement("INSERT INTO saveForm(Start_ON,  
    Expire_On) values(?,?)");
    pst.setDate(1, sDate);
    pst.setDate(2, eDate);
    int i=0;
    i=pst.executeUpdate();
    if(i>0){
        return SUCCESS; 
    }
    return ERROR;
   }
   }

MySQLテーブル->

 CREATE TABLE saveform(start_on DATE, Expire_On DATE)
4

2 に答える 2

0

ゲッターとセッターを修正したところ、次の行に別のエラーがありました -->

pst.setDate(1, sDate);
pst.setDate(2, eDate);

上記のコード行を次のものに置き換えました -->

pst.setDate(1, new java.sql.Date(sDate.getTime()));
pst.setDate(2, new java.sql.Date(eDate.getTime()));
于 2013-03-06T07:33:35.403 に答える
0

Datetimepicker は、あなたが使用し ているが、タイプ missmacth の問題を引き起こしている使用している2013-03-27T00:00:00+11:00場合の 形式で値を提供しています。この問題を解決するには、datetimepicker から型変換を行う必要があり、この方法で行うことができますprivate String Dateprivate Date sDatejava.util.Date format

String obj = "2013-03-27T00:00:00+11:00";
        SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM-yyyy");
        try {
            SimpleDateFormat parseFormatter = new SimpleDateFormat("yyyy-MM-dd");
            //SimpleDateFormat dt = new SimpleDateFormat("yyyyy-mm-dd hh:mm:ss+hh:mm"); 
            Date date = parseFormatter.parse(obj);

            String formattedDate = formatter.format(date);
            System.out.println(formattedDate);
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
于 2013-03-04T11:57:09.713 に答える