dポイントプレゼントキャンペーン実施中!

こんばんは。
現在、Strutsを使ったシステムをメンテナンスしているのですが、
java.io.Serializableを実装したクラスをアクションフォームBeanに
しています。(全画面共通フォームBean)
私はまだ初心者なので、ActionFormを継承したクラスをアクションフォームBeanとしてしか使ったことがないので、
なぜ、直列化にし、さらに共通で使っているのかが分かりません・・・
聞いたのですが、皆よく分からないとのことでした。
もしかして、直列化にすることは普通なのですか?
また、直列化も調べたのですが、あまり理解できなかったので、
分かりやすく教えて頂けませんでしょうか?

ご存知の方、よろしくお願い致しますm(_ _)m

A 回答 (2件)

StrutsではActionFormを継承していなければ、ActionFormとして扱えません。


もしかしたら、純粋なStrutsではなく拡張か何かをされてるのではないでしょうか?

直列化とは、シリアラズのことです。直列化とはあまり言いません。
簡単に説明すると、Javaで扱うオブジェクト(インスタンス)を、Java以外のストレージ(領域)に出力するためのものです。
例えば、Webだとセッション情報をDBに保存したり、平行稼動しているWebアプリケーション同士で情報を共有するときに使いますね。
ちなみに、ActionFormクラスもSerializableです。

参考URL:http://www.nextindex.net/java/IO/serialize.html

この回答への補足

こんにちは。お返事ありがとうございます☆

>もしかしたら、純粋なStrutsではなく拡張か何かをされてるのではないでしょうか?
ActionFormの部分だけ既存の分をもらってテストプログラムを作ってみました。単純なStrutsを使っていますが、うまくいきました。
Actionクラスでも特別なことはしていません。

教えて頂いた例のような操作をしないのであれば、
わざわざシリアライズしないで、ActionFormを継承させて
コーディングした方がいいのでしょうか?

すみませんが、よろしくお願い致しますm(_ _)m

補足日時:2007/11/20 15:46
    • good
    • 0

状況が全く把握できていないのですが、


既に動いているのであれば、わざわざ作り直す必要はないと思うのですが、なぜActionFormを継承させたいのでしょうか。

Strutsのバージョンはいくつですか?
Action#executeではActionFormが引数となってますが、ActionFormを継承しないでどうやって取得してるのでしょうか?

この回答への補足

こんばんは。ご回答ありがとうございますm(_ _)m

バージョンは、struts-1.2.9です。
今後の参考までに聞いていましたので、
なぜ?という感覚しかなく、質問を整理できていませんでした。
申し訳ありません。
もう一度詳しく調べてみます。

ちなみに、execute()でActionFormを引数にし、
TestFrm aFrm = (TestFrm) frm;
と単純に使って、データを取得・設定しています。
※TestFrmはSerializableを実装したクラスです。

ありがとうございましたm(_ _)m

補足日時:2007/11/20 19:29
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!