- PR -

会員登録のエラー処理について

1
投稿者投稿内容
aki
会議室デビュー日: 2006/04/04
投稿数: 2
投稿日時: 2006-04-04 18:53
Eclipseで会員登録ソースを作成しているのですが、名前が入力されていないときのエラー処理のif文がわかりません。教えてください。
/*
* Created on 2006/04/01
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
package ecommerce;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* @author spikey
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
public class UserRegistCmd {

/**
* 登録ボタンの処理を実行するメソッド
* @param request
* @param response
* @return String 遷移先画面名
*/
public String execute(HttpServletRequest req, HttpServletResponse res) {

//処理に必要な変数・インスタンスを用意します。
DBAccesser access = new DBAccesser();
UserBean bean = new UserBean();
String message;

//Shift-JISをUNICODEに変換する(半角数字は必要なし)
String name = CommonTools.toUnicode(req.getParameter("name"));
String add = CommonTools.toUnicode(req.getParameter("add2"));

//画面で入力された項目を取得しBeanに設定する
bean.setName(name);
bean.setBirthDay(req.getParameter("year"),0);
bean.setBirthDay(req.getParameter("month"),1);
bean.setBirthDay(req.getParameter("day"),2);
bean.setPostNo(req.getParameter("zip1"),0);
bean.setPostNo(req.getParameter("zip2"),1);
bean.setPrefecture(req.getParameter("add1"));
bean.setAddress(add);
bean.setTelNo(req.getParameter("tel1"),0);
bean.setTelNo(req.getParameter("tel2"),1);
bean.setTelNo(req.getParameter("tel3"),2);
bean.setEmail(req.getParameter("mail"));
bean.setld(req.getParameter("id"));
bean.setPass(req.getParameter("pass"));

bean.setUserNo(access.selectNEW_NO());

//DBに入力事項を登録するメソッドを実行する。
//登録成功の時にはtrue、失敗の時にはfalseが返る。
if(access.insertUSER_MST(bean)){
//登録処理に成功した場合は_メッセージをリクエストに格納する
req.setAttribute("message","ご登録有難うございました。"
+"<br>どうぞお買い物をお楽しみください。");
}else{
//登録処理に失敗した場合は_メッセージをリクエストに格納する
req.setAttribute("error","登録に失敗しました。再度登録してください。");
}

//次に遷移する画面名を呼び出し元に返す。
return"/Web/user_info_jsp.jsp";
}
}
SUK2
ベテラン
会議室デビュー日: 2005/12/27
投稿数: 69
投稿日時: 2006-04-04 23:02
何がどうわからないのか、ソースを見ただけでは答えようが無いと思います。

エラー時に正しくif文でelseに処理が流れないのですか?それともif文での分岐は正しく行われているけれどもその後の処理がわからないのですか?

前者でしたらDBAccesserクラスのinsertUSER_MSTメソッドにバグがあり、後者でしたらフレームワーク等が記載されていないので答えようがありません。
aki
会議室デビュー日: 2006/04/04
投稿数: 2
投稿日時: 2006-04-05 08:38
このソースに、名前が記入されてなかった場合if(name=(" "))の場合、名前を入力してください。と追加したいのです。
ハツキタツミ
大ベテラン
会議室デビュー日: 2005/05/24
投稿数: 108
投稿日時: 2006-04-05 09:04
引用:

akiさんの書き込み (2006-04-05 08:38) より:
このソースに、名前が記入されてなかった場合if(name=(" "))の場合、名前を入力してください。と追加したいのです。


#その程度のことが、自分で判断できないのは致命的ですが...

ここは学校ではありません。
自分の周りの人に聞いてみるなり、自助努力しましょう。
n.w
大ベテラン
会議室デビュー日: 2003/07/15
投稿数: 126
お住まい・勤務地: 神奈川
投稿日時: 2006-04-05 09:57
1.まずデバッグを入れるとか、ブレークポイントを張るなどして
execute内で名前のnameが空の場合とそうでない場合の状態を確認
してみましょう

それぞれ確認できたら

2.【java 文字列 空文字 判定】をキーワードに検索してみれば
【java 文字列 空文字 判定】


3、nameの判定句に従い、2の処理のif文で画面に情報返す
リクエストに名前未入力情報つけてセット(つくりによっていらないかも)
return してる処理で次の画面には行かず入力した画面へ戻る

詳細なつくりがわからないのでざっくりとした流れだけになりますが

指摘入ってますが、このあたりどう調べればいいかもわからない
状態でしたらまわりの人に聞くとか、自分自身のレベルアップする方向
で行かないと後々更にきつくなると思います
がんばってください

【編集】名前を入力してください気づかなかったので追記

[ メッセージ編集済み 編集者: n.w 編集日時 2006-04-05 19:42 ]
1

スキルアップ/キャリアアップ(JOB@IT)