Struts1.3.10でAjax連携

このQ&Aのポイント
  • Struts1.3.10を使用してAjax連携を行いたい。画面更新を軽減するためにAjaxを利用し、画面遷移を発生させない処理を実現したい。
  • JSFでは再描画が容易に行えるが、このシステムではJSFを使用していないため、Struts1系でAjaxを利用して画面の一部を再描画するためのフレームワークを探している。
  • 調査した結果、Struts1でも問題なく使用できるとされるDWRを使用してAjax連携を行いたい。
回答を見る
  • ベストアンサー

Struts1.3.10でAjax連携

Struts-1.3.10を使用しています。 データの登録・更新・削除等を行っているのですが、毎回の画面更新がだるいので Ajaxを利用して画面遷移を発生させないような処理を行おうと思っています。 JSFなどはf:ajaxタグなどで容易に再描画を行うことができるようですが このシステムではJSFは使用していません。 このシステムをStruts2に移行するのもStruts1と2では互換性がないということでためらっています。 そこでStruts1系でAjaxを利用して画面の一部(データの一覧部分など)を再描画させるための フレームワーク等があれば教えていただけませんか。 調べているとDWRを使用するというのがありましたが例としてあげられているのがStruts2系のものが多かったです。Struts1でも問題なく使用できるのでしょうか? よろしくお願いします。

  • Java
  • 回答数1
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

jQueryとかを使えばサーバ側のフレームワークは あまり関係ないですよ。 JSP(カスタムタグ)で HTMLの部分イメージを作り jQueryで受けて画面にはめ込むとか、 サーブレットで JSONやXMLを作り、jQueryで受けて HTMLに変換して画面にはめ込むとか いずれも簡単です。 前者は struts のカスタムタグを利用して普通に画面を 作って AJAX の受信完了イベントで画面にはめ込むので、 サーバ側は従来とあまりプログラミングは変わりません。 AJAXのやり始めはこれがよいかも。 後者は サーバでデータだけ作って、料理はクライアント側で行う方式。 jQuery で画面イメージの大部分をつくるので作る範囲が広いと大変ですが、 自由度が高く、いろいろと遊べます。 いずれにしてもサーバ側のフレームワークはあまり関係ないです。 #AJAXする JSPカスタムタグ作ったら面白そうだなー #作って見ようかな

sakukou10
質問者

お礼

回答ありがとうございます。 あー、なるほどイメージつきました。 再描画しようと思っている画面が結構複雑な構成なので前者で作ってみようと思います。 ありがとうございました。 JSPもAJAX対応のタグがあればうれしいですね。

関連するQ&A

  • Struts + Ajaxで画面更新

    お世話になります。 javascriptかJavaか迷ったのですが、こちらに投稿させていただきます。 もしカテゴリ違いなら申し訳ありません。 Strutsを使用しているのですが、Ajaxで画面遷移を行わずに画面の更新をしたいと思っています。 JSP内のincludeで読み込んでいるHTMLを更新したいです。 jqueryのpostメソッドでアクションを呼び出して更新データの取得などの処理までは行えたんですが、その後画面を更新する方法がよくわかりません。 例などを見ると、javascriptでタグなどをappendしたりして更新するのが多いのですがそれだと複雑なテーブルだったりアクションで取得して格納したbeanのデータを利用したいなどが難しそうなので、 バックグラウンドで行った後別のHTMLに表示してそれをincludeとかで更新できたらと思っているのですが無理なのでしょうか? もし無理ならそういう場合はどのように処理を行うのがよいのでしょうか。 意図がよくつかめない質問になり申しわけありませんが、回答よろしくお願いいたします。

    • ベストアンサー
    • Java
  • Ajax利用システムで画面全体を書き換えデータを一部埋める処理はサーブレット必要?

    Ajaxを利用して画面を作成したいのですが 画面遷移の際、新たに表示する画面全体を読み込み、その画面の一部に必要なデータを埋め込む ような処理はやはりサーブレットを利用するしか出来ませんよね? 当初、Ajaxクライアント+DWR+Javaモジュールだけで考えていたのですが サーブレットを利用した従来のWebシステムの一部の画面に Ajaxを適用する、というのが正しい考え方というものでしょうか?

  • Struts/JSTL 以外のタグライブラリ

    お世話になっております。 表題の件ですが、現在 SAStruts などを使用したWebアプリケーションを構築しております。 View には JSP を利用しており、タグライブラリとしては、SAStruts(Struts) のタグ、JSTL のタグを利用しております。 ただ、Struts のタグがあまり使いやすいとは思えないのです。 例えば index="true" が 2 次元配列で使えないなど。 お聞きしたいのは、これら以外に公開されているタグライブラリで、 JSTLのようにフレームワークに依存しない、かつ form/input 系を持っているものはあるのでしょうか? JSTL にも form や input 系のタグがあればよいのですが、、 もしご存知であればご教示お願いいたします。 以上、よろしくお願いいたします。

  • 遷移先の判定?

    ヘッダーのように全画面共通の部分があってそこでフォームを作ってsubmitをして遷移した際に、表示中の画面を再描画というか表示中の画面に遷移したいんですができるものでしょうか。 forwardの際にnullを渡して遷移しないようにすればいいのかと思ったのですが、真っ白になったのでうまくいきませんでした。 struts-config.xmlのヘッダーアクションのforwardタグで全画面の設定を記述しておいて、ロジック側で遷移元パスを取得して振り分け判断?とかするんでしょうか。それだと画面数が増えると大変そうなのですが何かいい方法があれば教えてください。 質問が下手で伝わりにくいようでしたら申し訳ありません。 Strutsは1.1を使用しています。 よろしくお願いします。

    • ベストアンサー
    • Java
  • Struts の画面遷移について

    現在Struts1.1で開発しております。 Strutsどころか、Javaもほぼ初めてなのでテンパってます。 言葉で説明するのはとても難しいく、分かりにくいと思いますが、 何かアドバイスをお願い致します。 【質問】 A画面、B画面、共通検索画面があり A→共通→A B→共通→B の画面遷移をします。 このとき、AまたはBで選択された値を共通画面のtextフィールドに反映します。 遷移後の共通検索画面で対象データ検索し、選択された値を呼び元(AまたはB)に返します。 さらにAまたはBでは遷移前の情報は保持しなければいけません。 どうして作ったら良いか分かりません。 非常に困ってます。。。

    • ベストアンサー
    • Java
  • Strutsで重い処理を行う際の画面遷移

    Java jdk1.6.0_20 Struts-1.3.10 MySQL-5.0.45 を使用しています。 データの一覧などを画面に表示する際、件数が多くなると処理が返ってくるまでが遅くなることがあるため 最初にHTMLを表示させておいてデータ表示部(テーブルレイアウト)のところだけその後読み込むということを行いたいです。 できれば完了まで処理中であったりローディング中みたいなものも表示できればいいのですが、 まずは上記のことが行えるようになってから考えたいと思います。 最初の遷移時にはデータ表示の処理は行わず、読み込みが完了してからAjaxでデータ表示処理を行えばよいかと思ったのですが テーブル等複雑なレイアウトの書き換えやActionFormBeanなどが使えなさそうということもあって他に方法はないかと思っています。 良い方法があればご教授いただければと思います。 よろしくお願いいたします。

    • ベストアンサー
    • Java
  • strutsにおける<option>データの扱いについて

    strutsでの質問です。 <select>タグのリストで選択されているデータを ActionFormを介してset、getすることはできるのですが、 <select>タグ内の <option>データ を ActionFormを介してset、getすることは できないでしょうか? というのは、WEB画面で<select>タグ内のリスト項目に変更を加え、 SUBMITしてサーバで更新したいのです。 例えば、次のような感じです。 りんご、メロン、ぶどう     ↓ 変更 りんご、スイカ、ぶどう、マンゴー(←このデータをサーバで更新したい) 代替案でもいいので、何か方法があれば教えて下さい。 よろしくお願いします。

  • strutsのactionタグinput

    strutsのvalidatorを使用するため 「struts-config」のactionタグに以下の修正を入れると思います。  ・validate = true  ・input  = "エラー時に遷移するページ" 上記の修正後、実行すると 画面の初期表示時に、どうやらinputで指定した画面に遷移してしまいます。 エラー時に遷移するための指定かと思ったのですが 画面初期表示時にも読み込まれるのでしょうか? 画面表示で分割して表示している所為でしょうか? ・validatorでのエラーはポップアップで表示したいと思っています。 ・該当する1画面表示に対しての配置は以下になります。  (1)Menue.html   -(2)Top.jsp※共通なヘッダ部分   -(3)Main.html     -(4)Init.jsp※検索結果表示部分     -(5)Search.html       -(6)Search_Up.html※上部の表示部分       -(7)Sarch_In.jsp※検索条件入力部分 ※初期表示は(1)の画面で、validatorを使用するのは(7)の画面です。 (7)の画面には以下を追加しました。  追加⇒<html:javascript formName="対象Form名"/>   <html:form action="actionのpath名.do?   action=search" method="post" target="view"  追加⇒onsubmit="return validate対象Form名(this)"> 1つの画面に対して細かく資産を分けてしまうと validatorを利用する際にうまく画面遷移が出来ないのでしょうか?

  • 【緊急】Strutsで困っています

    お世話になります。 この度開発業務にて解決の出来ないエラーに はまり、クリティカルな遅延を続けていて 精神的にまいってきています。 どなたか、お知恵をお貸しください! 業務の関係上資料として持ち出せるものが ほとんどありませんので、書き留めた一部のエラーで もし、あっ!と思われた方おられましたら コメントをお願い致します。 1.使用環境 言語:Java フレームワーク:Struts(バージョン不明) ローカル環境サーバー:WAS7 Eclipse3.8だったと思います 2.画面遷移 メニューリンク→今回対象の画面 3.問題点 対象の画面には検索機能があります。 検索を実施し1件以上結果があった場合、 他の画面へ遷移したり、2回目の検索をしたりすると システムエラーで落ちてしまいます。 その際にデバッグで追ってみようと試みましたが、 Actionにわたる前に落ちているようで デバッグ不可能でした。 どうも、定義なのかセッションがおかしいのかという ところでXMLなどの定義も確認してみましたが、 他画面と同様の定義で間違いが見つかりませんでした。 デプロイしたものが壊れているのかと思い、 デプロイしなおしてみましたが結果は同じでした。 1回目の検索の後セッションが切れて 画面遷移時にアクションへ渡らず落ちるといった 現象も考えられるでしょうか? 以下のようなエラーが出ております。 <エラー内容> javax.servlet.ServletException: BeanUtils.populate at org.apache.struts.util.RequestUtils.populate(RequestUtils.java:1210) (中省略) Caused by: java.lang.IllegalArgumentException: 引数タイプが一致しません at sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod) (中省略) SystemException [wn is null { } ,, null] 以上です。 引数タイプが気になっていますが、 DTOやBeanを確認してもどうも検討がつきませんでした。 粘りましたが、限界です。 何卒宜しくお願い致します。

  • Strutsのvalidate()でListの値がなくなる

    Strutsを使用して開発をしています。 一覧表示されたデータを選択し、その選択されたデータを更新するという システムを作っています。 [詳細] 一覧にはラジオボタンと名前と年齢が表示されています。 ラジオボタンで選択されたデータの年齢を見て 50才以上なら更新せず、validate()でエラーにしたいのです。 JSPではList(ラジオボタンと名前と年齢が入っている)を <logic:iterate >タグでぐるぐる回しています。 更新ボタン押下時、validate()メソッド内で listを取得して判断しようとしたのですがnullになってしまいます。 このListの値を取得する方法はありませんでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • Java

専門家に質問してみよう