Strutsを使用して重い処理を行う際の画面遷移

このQ&Aのポイント
  • Strutsを使用して重い処理を行う際の画面遷移について悩んでいます。データの一覧などを画面に表示する際、件数が多くなると処理が遅くなることがあります。そのため、最初にHTMLを表示させておいてデータ表示部だけを後で読み込む方法を考えています。
  • 最初の遷移時にはデータ表示の処理は行わず、読み込みが完了してからAjaxでデータ表示処理を行う方法も考えています。しかし、テーブルの書き換えやActionFormBeanが使えないという問題があります。この問題をどう解決するか検討しています。
  • もし良い方法があれば教えていただきたいです。画面遷移時に処理中やローディング中の表示を行うこともできれば良いです。以上を考慮した上で、効果的な方法を教えていただければ幸いです。
回答を見る
  • ベストアンサー

Strutsで重い処理を行う際の画面遷移

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

  • rihm
  • お礼率76% (19/25)
  • Java
  • 回答数2
  • ありがとう数0

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

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

JSP なんだからどんな形でもレスポンスを返せる訳です。 HTML タグやHEAD タグも要らない。TABLE タグだけを返すページを作る訳です。 で、Ajax で呼んでは挿入すると。

その他の回答 (1)

  • public_sa
  • ベストアンサー率52% (13/25)
回答No.2

ひとつ思ったのはAjaxである必要があるのかなぁというところ 結局ユーザーはレスポンス待ちしてしまうのであれば 普通に画面を切り替えてしまえばよいと思う。 というところで1つ提案。 ユーザのSubmitアクション後JavaScript等でローディング中的なメッセージを 表示させておいてJavaScriptでSubmitするのはどう? ユーザの画面的にはサーバから次のレスポンスがあるまでは ローディング中になりレスポンス受け取り後ブラウザ描画時 にローディング中メッセージが消えデータが表示されるよ。

関連するQ&A

  • Struts1.3.10でAjax連携

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

    • ベストアンサー
    • Java
  • Struts + Ajaxで画面更新

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

    • ベストアンサー
    • Java
  • strutsで空白を認識させるには?

    こんばんは。質問です! strutsとjavaとTomcatを使用して開発をしております。 SQLから取得したデータを jspでテーブルの<TD>に<bean:write>を使ってただ表示 をしているだけなのですが、 データがnullの場合、テーブル枠が消えてしまい、 レイアウトが崩れてしまいます・・・ strutsでnullデータに" "(半角空白)を入れて渡すと、 変わらず、"&bnsp;"を入れて渡すと&bnsp;が そのまま出力されてしまいます・・・ そこで、" "(全角空白)を入れて渡したところ、 うまくいきました。 ですが、他に良い方法はないでしょうか? また、質問タイトルには、「strutsでは~」と書いていますが、 実際のところ、jspで制御した方がいいのでしょうか? ご存知の方がいましたら、ご回答お願い致します。

    • ベストアンサー
    • Java
  • struts 2つの選択肢(select)の連動

    struts 初心者です。 今strutsを使ってシステム作成してるんですが、壁にぶつかってます。 行いたい処理は、2つある選択肢(select)で、一つ目のデータが選択されたら、関連する内容のデータを、もう一つの選択肢に表示させるようにしたいです。動的にっていうみたいですが。。 データの件数が多いので、一つ目のデータが選ばれたら、DBに接続して関連するデータを取得するみたいな感じで考えているのですが、方法が全くわかりません。 分かる方がいましたら、情報ください。 宜しくお願いします。。。。。。 図図しいお願いかもしれませんが、サンプルとか載せていただければ、ものすごくありがたいです。

    • ベストアンサー
    • Java
  • jquerymobileのページ遷移のような遷移

    いつもお世話になっております。 jquerymobileのページ遷移のような遷移を行いたいのですが、 イメージ(スライドはしなくても可) URL:http://billboardtop100.net/jquery_mobile/slide/slide.html 流れとしては、ページローディングしている最中、画面がオーバーレイしながら、 ローディングのアニメーション画像を表示し、 ロードが完了したら、スライドしてURL先へリンクする というイメージなのですが(スライドはしなくても可) ajaxとかそういう技術を使わないと、スムーズに遷移しないのでしょうか、、 以下に作ってみたサンプルを記載しますが、 単純にオーバーレイしてからリンク先へアクセスしているので、 読み込みも遅くなりますし、以下のコードだと、ロードの画像が真ん中にきません、、 そして画像を隠す動作が一瞬ちらついてしまいます、、、 html <div id="shade"><img src="/img/ajax-loader.gif" alt="ローディング中"></div> <section data-role="content"> <ul data-role="listview"> <li><a href="/aboutus.html" data-transition="slide">hoge</a></li> <li><a href="sample.html" data-transition="slide">hoge2</a></li> <li><a href="sample.html" data-transition="slide">hoge3</a></li> </ul> </section> js jQuery(function(jQuery){ jQuery("#shade").css({ opacity: '0.6', display: 'none', position: 'absolute', top: '0', width: '100%', height: '100%', background: '#000', zIndex: '1' }); jQuery("a[href]").click(function(e){ link = jQuery(this).attr("href"); if (!link.match(/#/i)) { e.preventDefault(); jQuery("#shade").css('display', 'block'); } }); }); カッコいいページ遷移がしたいです。。 是非ご教授下さい。 どうぞよろしくお願いします

  • strutsで、JSP→アクションクラス→JSPの遷移ができない。

    Strutsを勉強中の者です。 初心者的な質問で大変恐縮ですが、どこを調べても原因が分からなかったので、最終手段としてこちらに質問させて頂く事にしました。 どなたかご存知の方がいらっしゃいましたらご教授頂けないでしょうか。 ・概要  strutsで、JSP→クラスの実行→JSPの遷移ができない。 ・環境  WindowsXP  Eclipse3.3  Tomcat5.5  GEF3.3  struts-1.3.8  JDK1.5 ・詳細  「Eclipseパーフェクトマニュアル ベストセレクション」  という本をもとに勉強しています。  ここのStrutsの例題で  (1).簡易家計簿 <メニュー画面>(index.jsp)を表示   (2).同画面のリンク(ShoppingInitEntry.do)をクリック   (3).リンク(ShoppingInitEntry.do)に関連づけられているクラス(ShoppingInitEntryAction)の実行   (4).データ入力画面(ShoppingUpdate.jsp)への遷移  という事をやっています。  実際に設定して、動かして見ましたが、  Eclipseでデバッグを貼っていると(3)まで動作しているのが分かるのですが、(4)の画面まで遷移しません。  具体的には、ShoppingInitEntry.doのリンクが  ブラウザのアドレスバーに表示され、画面が真っ白の状態になります。  (データ入力画面は表示されない)  尚、直接(4)の画面(ShoppingUpdate.jsp)を開くと、  データ入力画面がエラーも無く表示されます。 ---- struts-config.xmlの設定が悪いのかと思ったのですが、 問題は無さそうに思います。(必要と思われる部分を抜粋) <struts-config> <global-forwards> <forward name="ShoppingInitEntry" path="/ShoppingInitEntry.do"/> </global-forwards> <action-mappings> <action path="/ShoppingInitEntry" type="MoneyBooks.ShoppingInitEntryAction" input="/index.jsp"> <forward name="success" path="/ShoppingUpdate.jsp"/> </action> </action-mappings> </struts-config> ---- (3)ShoppingInitEntryActionのソースは、下記の通りです。 public class ShoppingInitEntryAction extends Action { @Override public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { return super.execute(mapping, form, request, response); } } 上記のreturn super.execute( ~の部分では nullを返しているようです。 Eclipseのコンソールにメッセージは表示されません。 A.原因は、struts-config.xmlでしょうか? それともクラスがnullを返している為に画面遷移しないのでしょうか?    そもそもsuper.executeのソースをjadのデコンパイルで追ったのですが、返り値としてNullしか返していない状態です。 B.また、馬鹿な質問ですが、そもそもjavaではnullを返り値で返すとオール×だと思っているのですが、この考え方は正しいでしょうか?  大変お恥ずかしい限りですが、ご存知の方がいらっしゃいましたら教えて頂きたく宜しくお願い致します。

    • ベストアンサー
    • Java
  • Struts のサンプルプログラムがうまく動かない。

    http://www.hellohiro.com/struts.htm このページのサンプルプログラムを試しているのですが、うまく動きません。 未入力の場合の処理は、動くのですが、すべて入力した場合の処理が動かず、空白ページが表示されます。 どなたか教えていただけないでしょうか? OS は、Windows XP Home Edition SDK は、jdk1.6.0_01 Tomcat は、5.0.28 Struts は、1.3.8 です。

    • ベストアンサー
    • Java
  • Strutsで画面開設時に・・・

    Strutsで画面を開設時に ボタン等を押下することなく 結果一覧を表示させる方法はありますでしょうか?? 前の画面から遷移するためのボタンを押下した時ではなく、 画面が開いた時に、結果一覧を表示させる操作がしたいのです。 struts-config.xmlをどうにかいじって Action.classのexecute()を ボタン等の操作なくJSPファイルに読み込む方法ないですかね・・・・。

    • ベストアンサー
    • Java
  • 処理前の「お待ちください」

    JavaScriptで、時間のかかる処理をする前に「お待ちください」のメッセージを 表示させたいと思っています。 function wait{ $("#WaitMsg").html("お待ちください…"); Test(); ←時間がかかるメソッド $("#WaitMsg").html("完了しました"); } 上記で実行してみたんですが、画面上に「お待ちください」の メッセージが出る前に、時間がかかるメソッドが実行されているのか、 画面上の表示が変わらず困っています。 まず、メッセージが出る→処理が実行される→完了しましたメッセージと したいのですが、どうしたら良いのでしょうか? Ajax通信時にwaitメッセージを表示させる類のものは散見するのですが、 このTest();の処理はAjax通信ではない(単純な計算とかタグの書き換えとか そういう類です)ので困っています。 ご教授ください。

  • ServletからHTMLページへの遷移について

    初めまして。 JDK:1.5.0_10 Apache Tomcat:/5.5.15 の環境で、Java Servletを組んでいます。 実現したい処理があるのですが、いろいろ調べても見つからないので質問させて頂きます。 1.クライアントがボタンを押す(.htmlのページ) 2.1から命令を受け取ってサーブレットが処理する 3.1のページを更新して再表示してあげる というようなものです。 わからないのが、3の サーブレットからHTMLへページ遷移する方法です。 すみませんが、何か方法があったら教えて下さい。

    • ベストアンサー
    • Java