- PR -

StrutsのActionFormBean内でデータの加工をするには?

1
投稿者投稿内容
EMY
会議室デビュー日: 2005/09/27
投稿数: 4
投稿日時: 2005-10-27 16:59
入力フォームで和暦の生年月日を入力してもらい、次のページに西暦になおしたものを表示させたいのですが、「javax.servlet.ServletException: どのスコープにもBean xxx がありません。」と言われてしまいます。
和暦→西暦の変換クラスは自前で用意し、そのクラスは単体で動かすと期待通りの動作をしています。
変換クラスはWarekiToSeireki(元号,和暦の年,月,日)で、getY(),getM(),getD()でそれぞれ西暦の年、月、日を取得できます。

ActionFormBeanにて
private String gengo;
private String year;
private String month;
private String day;
public String getGengo() {return gengo;}
public String getYear() { return year; }
public String getMonth() { return month; }
public String getDay() { return day; }

WarekiToSeireki wts = new WarekiToSeireki(gengo,year,month,day);

public void setGengo(String gengo) { this.gengo = gengo;}
public void setYear(String year) { this.year = wts.getY(); }
public void setMonth(String month) { this.month = wts.getM(); }
public void setDay(String day) { this.day wts.getD(); }

正しい日付が入力されたか検証するためにvalidate()を使おうと思ってActionFormBeanに書いたのですが、validate()を記述するまでもなく怒られてしまいます。
どうかよろしくお願いします。

WindowsXP Pro
JDK1.5.0_04
Tomcat5.5.9
Struts1.2.7
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2005-10-27 17:48
結局何がわからないのでしょうか?
「StrutsのActionFormBean内でデータの加工をする」方法、が質問内容ではないようですが・・・。

validate() を利用するサンプルが必要であれば Struts に付属のサンプルを参考にしてみてはいかがでしょうか。
EMY
会議室デビュー日: 2005/09/27
投稿数: 4
投稿日時: 2005-10-28 00:29
インギ様、早速のご回答ありがとうございます。
状況をうまく説明できていないようで、申し訳ありません。
私がやりたいのは、validate()に渡す前にフォームから取得した値を加工したいのです。
間違った日付(例えば4月31日のような)をWarekiToSeireki()に渡し、WarekiToSeireki.getY()などで年、月、日を取得すると、"0000"や"00"が返ってくるようになっています。それをvalidate()にかけると入力値検証になるかと思っているのですが、上記のような例外が発生してしまいます。この段階でまだvalidate()は記述していません。ためしにActionでこの変換クラスを使ってみると正常に動きました。
ActionFormBeanの中でフォームから取得した値を加工してセットしなおすということはできなのでしょうか?
分かりにくい説明かとは思いますが、どうかよろしくお願いします。
1

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