- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:クラスの直列化に関して)
クラスの直列化について
このQ&Aのポイント
- クラスの直列化についての分かりやすい説明を教えてください。
- Strutsを使ったシステムにおいて、なぜクラスを直列化する必要があるのか理解できません。
- 直列化とは何ですか?どのような場面で使用するのが一般的ですか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
noname#49428
回答No.1
StrutsではActionFormを継承していなければ、ActionFormとして扱えません。 もしかしたら、純粋なStrutsではなく拡張か何かをされてるのではないでしょうか? 直列化とは、シリアラズのことです。直列化とはあまり言いません。 簡単に説明すると、Javaで扱うオブジェクト(インスタンス)を、Java以外のストレージ(領域)に出力するためのものです。 例えば、Webだとセッション情報をDBに保存したり、平行稼動しているWebアプリケーション同士で情報を共有するときに使いますね。 ちなみに、ActionFormクラスもSerializableです。
その他の回答 (1)
noname#49428
回答No.2
状況が全く把握できていないのですが、 既に動いているのであれば、わざわざ作り直す必要はないと思うのですが、なぜActionFormを継承させたいのでしょうか。 Strutsのバージョンはいくつですか? Action#executeではActionFormが引数となってますが、ActionFormを継承しないでどうやって取得してるのでしょうか?
質問者
補足
こんばんは。ご回答ありがとうございますm(_ _)m バージョンは、struts-1.2.9です。 今後の参考までに聞いていましたので、 なぜ?という感覚しかなく、質問を整理できていませんでした。 申し訳ありません。 もう一度詳しく調べてみます。 ちなみに、execute()でActionFormを引数にし、 TestFrm aFrm = (TestFrm) frm; と単純に使って、データを取得・設定しています。 ※TestFrmはSerializableを実装したクラスです。 ありがとうございましたm(_ _)m
補足
こんにちは。お返事ありがとうございます☆ >もしかしたら、純粋なStrutsではなく拡張か何かをされてるのではないでしょうか? ActionFormの部分だけ既存の分をもらってテストプログラムを作ってみました。単純なStrutsを使っていますが、うまくいきました。 Actionクラスでも特別なことはしていません。 教えて頂いた例のような操作をしないのであれば、 わざわざシリアライズしないで、ActionFormを継承させて コーディングした方がいいのでしょうか? すみませんが、よろしくお願い致しますm(_ _)m