- PR -

DynaValidatorForm の拡張クラスの使用方法について

1
投稿者投稿内容
masa
常連さん
会議室デビュー日: 2003/01/14
投稿数: 37
投稿日時: 2004-01-30 16:53
件名のとおりですが、以下のように定義されているクラスがあります。

public class TestForm extends DynaValidatorForm {
}

<form-bean name="TestForm" type="test.TestForm">
  <form-property name="name" type="java.lang.String" />
  <form-property name="pass" type="java.lang.String" />
</form-bean>

このクラスを、業務ロジックのなかで

TestForm form = new TestForm();
form.set("name", "テスト"); // (*)
form.set("pass", "password");

のように使用したいと思っております。
しかし、実行時に (*) の箇所で

java.lang.NullPointerException
at org.apache.struts.action.DynaActionForm.getDynaProperty
(DynaActionForm.java:596)

が発生してしまいます。

やはり、こういう使用方法は無理なのでしょうか?
もし、解決方法ご存知の方いましたら、
ご教授よろしくお願いいたします。

- - - -
Emacs信者
常連さん
会議室デビュー日: 2003/08/10
投稿数: 38
投稿日時: 2004-01-30 19:06
どこでその操作を行なおうとしているのでしょうか?

ActionMappingのインスタンスが取得できるのなら、手段はありますよ。
たぶん以下のようにすればいいと思います。

ただし、動作確認はしてません。
動かなかったらゴメンなさい。

コード:

ActionMapping mapping;
//インスタンスが取得可能であると仮定する

ModuleConfig moduleConfig = mapping.getModuleConfig();
FormBeanConfig fbc = moduleConfig.findFormBeanConfig("TestForm");

DynaActionFormClass dynaClass =
DynaActionFormClass.createDynaActionFormClass(fbc);

TestForm form = (TestForm)dynaClass.newInstance();

form.initialize(mapping); //この操作はもしかしたら不要かも




[ メッセージ編集済み 編集者: Emacs信者 編集日時 2004-01-30 19:30 ]
1

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