新規登録の画面

名前(Name)が未入力で登録ボタンを押した場合のエラー表示画面です。


Javaで必要なファイル
ファイル名概説機能説明
insert.jsp表示する画面フォームと項目が一致している必要があります
InsertAction.java処理ロジック登録を起動するクラス
InsertGoAction.java データベース登録をおこなうクラス
   
InsertForm.javaフォーム定義データベース表示情報
「InsertForm.java」は「NametableForm.java」と全く同一内容のファイルです。
登録フォームのみで入力チェックをおこなわせたいので分けてあります(他はチェックしない)。


insert.jsp


入力されたログインIDを表示させてセッションが有効なのを確認できます。


InsertForm.java

package frmapl; import org.apache.struts.action.*; import javax.servlet.http.HttpServletRequest; import org.apache.struts.validator.*; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionMapping; public final class InsertForm extends ValidatorForm { private String i_id = ""; private String i_yomigana = ""; private String i_name = ""; private String i_telphone = ""; private String i_fax = ""; private String i_zip = ""; private String i_address = ""; private String i_remarks = ""; private String id_number = ""; public void setId( String value) { this.i_id = value; } public String getId() { return this.i_id; } public void setYomigana( String value) { this.i_yomigana = value; } public String getYomigana() { return this.i_yomigana; } public void setName( String value) { this.i_name = value; } public String getName() { return this.i_name; } public void setTelphone( String value) { this.i_telphone = value; } public String getTelphone() { return this.i_telphone; } public void setFax( String value) { this.i_fax = value; } public String getFax() { return this.i_fax; } public void setZip( String value) { this.i_zip = value; } public String getZip() { return this.i_zip; } public void setAddress( String value) { this.i_address = value; } public String getAddress() { return this.i_address; } public void setRemarks( String value) { this.i_remarks = value; } public String getRemarks() { return this.i_remarks; } /* 選択したデータ番号 */ public void setId_number(String value) { this.id_number = value; } public String getId_number() { return this.id_number; } }

アクセッサだけです。
入力チェックのロジックがないですが、チェックされます。

InsertAction.java

package frmapl; import frmapl.UserId; import mypackage.NameTable; import java.sql.*; import java.util.*; import javax.sql.*; import javax.servlet.*; import javax.servlet.http.*; import org.apache.struts.*; import org.apache.struts.action.*; import org.apache.struts.validator.*; import java.io.*; import javax.naming.*; public final class InsertAction extends Action { public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response ) throws Exception, ServletException, IOException { boolean fg = isCancelled(request); if (fg){ return (mapping.findForward("success")); } else { return (mapping.findForward("success")); } } }


InsertGoAction.java

package frmapl; import frmapl.UserId; import mypackage.NameTable; import java.sql.*; import java.util.*; import javax.sql.*; import javax.servlet.*; import javax.servlet.http.*; import org.apache.struts.*; import org.apache.struts.action.*; import org.apache.struts.validator.*; import java.io.*; import javax.naming.*; public final class InsertGoAction extends Action { public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response ) throws Exception, ServletException, IOException { boolean fg = isCancelled(request); if (fg){ return (mapping.findForward("success")); } else { InitialContext ic = new InitialContext(); DataSource ds = (DataSource)ic.lookup("java:comp/env/MySQL_DBCP"); Connection conn = ds.getConnection(); PreparedStatement stmt = null; InsertForm dform = (InsertForm)form; // キャスト // データベース登録 { if (conn != null) { stmt = conn.prepareStatement( "INSERT INTO nametable " + "(yomigana, name, telphone, fax, zip, address, remarks)" + "VALUES(?, ?, ?, ?, ?, ?, ?)"); stmt.setString(1, dform.getYomigana()); stmt.setString(2, dform.getName()); stmt.setString(3, dform.getTelphone()); stmt.setString(4, dform.getFax()); stmt.setString(5, dform.getZip()); stmt.setString(6, dform.getAddress()); stmt.setString(7, dform.getRemarks()); int resultCnt = stmt.executeUpdate(); conn.close(); } } } return (mapping.findForward("success")); } }

●登録ボタンが押された時に呼び出されるメソッドです。
●データベースに登録して正常終了を返します。
キャンセルボタンが押された場合にも正常終了を返しています(トップ画面に戻るだけ)。
(注意)ここでは基本処理ロジックのみを作成して、エラー処理は組み込んでおりません。


struts-config.xml



validatorを使って入力チェックをするので、その準備作業です。
(ログインでは、validateメソッドなので不要でした)
validator機能を利用するためには、「commons-validator.jar」が必要です。

validation.xml


名前(name)のみチェック対象に設定しています。

「validator-rules.xml」が必要ですが、デフォルトのままで修正はありません。