• 締切済み

strutsでのlinkで質問があります

こんにちは。 神奈川の大学生です。 学校でjavaを少し勉強しstrutsをやっています。 初心者ですが宜しくお願いします。 質問なんですがよくオークションなど検索をした時 該当35件あって 10件づつ表示できていて リンクが2 3 4 って出来ていて 2をクリックすると11件目~20件まで表示できる画面です。 そんな感じで作っていきたいんですけど、 jspで <html:link action="/*.do" property="rinks"> このような形でループさせて表示はできるのですが、 検索結果によって リンクの数字は増えたり減ったりするため acrion="*.do?xxxx=" + 変数(リンクの押された数字) のような形も違うみたいでした。 パラメータを渡す処理がサイトなど検索しても理解ができません。 値がわたればSELECT文で11~20までを条件を指定して表示できますので、 struts詳しい方方法を教えて下さい。 宜しくお願いします。

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

みんなの回答

  • PED02744
  • ベストアンサー率40% (157/390)
回答No.1

あまりstrutsは関係ないと思います(多少は関係しますが) 検索するのは、サーバ側のDBなので、検索件数も検索結果もサーバはわかっています。 さらに、一回に表示させるべき件数もサーバ側が知っているはずです。 なので、例えばセッション内に一回に表示すべき結果を入れておけばよいわけです。 例えば検索結果件数が35件、一回の表示件数が10件だと(35+(10-1))/10 = 4 4ページ分のデータがある事がわかります。 初回の表示の場合は1が押されたのと同じ処理をすればよいので、 初回・1がクリックされた場合は、1~10 2がクリックされた場合は、11~20 3がクリックされた場合は、21~30 4がクリックされた場合は、31~35(全体で35件しかないから) のデータをセッションなり、リクエストなりのスコープに入れてiterateでまわせばよいのです。 1~4が押された時の処理は<html:link>でも良い(あなたの考察で合っています)ですが、 できればformに対して submitするようなJavaScriptを書いてあげた方がよろしいかとおもいます。

yuriko1155
質問者

お礼

PED02744様 回答ありがとうございます。 大変理解しやすく勉強になりました。 ということはJSPでリンクボタンの2~4をクリックした際 onClick()でfanction()処理の中にactionで指定した 移動先+引数を渡すという処理を書けばいいんでしょうか? 渡された引数により 件数を絞っていくという感じでしょうか?

関連するQ&A

  • Strutsでリンクを動的に生成したい

    現在Strutsタグを使って、リンクを動的に生成したいと考えています。 具体的には、 <a href="http://www.hogehoge.ne.jp/XXXXX> Link </a> という感じで、XXXXのところを動的に操作したいのです。 jspで<%、%>を使ってべた書きすれば、作成でできるのですが、JSPのページにコードを書いてしまうことになるので、できれば避けたいと思っています。 Strutsのタグ、もしくはJSPのタグで実現したいと思うのですが、いい方法はないのでしょうか? よろしくお願いいたします。

  • strutsのhtml:linkの使い方

    html:linkを使用してJSPを表示した際に、前のフォームのプロパティ値(ここではstaffNumberの値)を取得したいのですが,うまくいきません。 同じ処理をhtml:submitで実行すると取得できています。 その違いを教えて頂きたいのです。 以下がそのコードです。 【struts-config】 <form-bean dynamic="true" name= "loginForm" type="org.apache.struts.validator.DynaValidatorForm"> <form-property name = "staffNumber" type= "java.lang.String" /> </form-bean> <action name="loginForm" path="/login" scope="request" type="login.action.LoginAction" validate="false"> <forward name="success" path="/login.jsp" /> </action> 【login.jsp】 <html:form action="/login">  <html:text property="staffNumber" size="10"maxlength="8"/> <html:link action="/login">testlink</html:link> <html:submit value="test"/> </html:form> 【LoginAction】 public class LoginAction extends Action{ public ActionForward execute (ActionMapping mapping, ActionForm form, HttpServletRequest req, HttpServletResponse res) throws Exception{ DynaValidatorForm loginForm =(DynaValidatorForm) form; String staffNumber=(String)loginForm.get("staffNumber"); System.out.println(staffNumber); return (mapping.findForward("success")); } } linkの処理で同じJSPを表示していますが,前のプロパティ値を取得しているかをログで確認する事を優先しているのでそのようにしています。 質問の意味がわからない、ソースの不足等ありましたら御指摘下さい。 宜しくお願いします。

    • ベストアンサー
    • Java
  • Struts html:linkのアンカータグ

     Struts html:linkを次のようにコードを作成していました。  <html:link href="index.jsp" paramId="jump_to" paramName="param" anchor="idss">中略</html:link>  idssというのは、int idss にて変数です。当該ページに移動してリンクを実行すると、  http://localhost:8080/blog/index.jsp?jump_to=20#idssとなりidssの部分をintの値として実行したいにもかかわらず、idssの文字列として認識されてしまいます。 尚、anchorの部分をanchor="20"として、実行しますと正常に動作いたしました。  <A Name~の部分は間違いがないようです。anchor=idssとして、動作しようとすると、引用符が必要ですとエラーが出てしまいます。  idssを使用して、希望する動作を得るためには、どうすればよいのでしょうか。idssを使用しないとすれば、どうすればよいのでしょうか。  皆様のご意見、ご教授をお待ちしております。  宜しくお願い申しあげます

  • 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
  • Java struts Formを分ける

    Java Struts1.3.10 1jspにつき1Formとし、A.jspからB.jspへ遷移させようと思っています。 しかしA.jspは正常に表示されるのですが、遷移後エラーが発生します。 Bean AForm のプロパティ AList に対するゲッターメソッドがありません 遷移後に見てほしいのはBFormなのですが、AFormを見てしまっています。 どのようにすればBFormを参照することができますでしょうか? struts-config.xml <action attribute="AForm" input="/pages/A.jsp" name="AForm" path="/Result" type="jp.co.elephan.rental.action.Aaction" scope="session" validate="true" parameter="insert"> <forward name="Result" path="/pages/B.jsp" /> <forward name="Return" path="/pages/A.jsp" /> </action> <!-- --> <action attribute="BForm" input="/pages/B.jsp" name="BForm" path="/Return" type="jp.co.elephan.rental.action.Baction" scope="session" validate="true" parameter="yes,no"> <forward name="Result" path="/pages/A.jsp" /> <forward name="Return" path="/pages/B.jsp" /> </action> 以上です。

    • ベストアンサー
    • Java
  • サーバーサイドのJavaのStruts2を使用した開発のクラス分けについて

    表題の件で、ご質問なのですが、今現在、HTML、JavaScript,Struts2,Java(strutsのアクションクラスはサーブレットとは別ですかね?サーバー側で動くJavaプログラムという事でサーブレットでよろしいですか?)を使用して簡単にですが、フォームで入力された値を、DBに登録し、登録結果をブラウザに表示するというのを作ろうと考えています。  そこで、それぞれの機能を、どのクラスに分担させるかを考えているのですが、全く思いつきません。なるべくMVCモデルに準拠し、効率のよい形にしたいのですが、サイトで参考になるサンプルを探しも見つかりませんでした。  設計する人によって変わると思いますが、どなたか、例をあげていただけませんでしょうか? * 検索クラス セレクトを発行するクラス等      

  • eclipseでのstrutsについて

    すみませんがどなたか助けてください! strutsでの開発をすることとなり、現在勉強中なのですが最初のjspにて parsingエラーとなりつまづいております。。 【現在の環境】 eclipse3.0.1 Tomcat 5.0.28 j2sdk1.4.2_08 struts1.1 主なプラグイン: lomboz.301 (EMF 2.0.2) tomcatplug-in V3 Hibernate synchoronizer 3.0.1  以上のような環境でeclipseから新規プロジェクトを Tomcatプロジェクトにて作成し、struts-blank.warを解凍したものをworkspaceにコピーしております。  struts関連の参考サイトをみながら学習しておりましたが、 まず最初の"http://localhost:8080/プロジェクト名/index.jsp"にアクセスしてもエラーとなります。 エラーログ: javax.servlet.ServletException: Missing message for key "welcome.title"~以下略 また、eclipseのindex.jspファイル上でもエラーが表示されておりまして、 <%@ taglib uri="/tags/struts-logic" prefix="logic" %>のところで 「JSP Parsing Error:"/tags/struts-logic"がみつかりません。」と表示されます。 環境設定に問題があるのでは・・と調べてはいるのですが2日悩んでおりますが未だ解決に至っておりません。  http://localhost:8080/struts-blank/にアクセスするこは確認できております。  とりわけ自信がないのはeclipseでのTomcatの設定なのですが、色々調べてみたつもりですが、 上手くいきません。 クラスパス:C:j2sdk1.4.2_08\tools.jar ブートクラスパス:C:j2sdk1.4.2_08\rt.jar          C:j2sdk1.4.2_08\charset.jar 以上の設定をしています。 eclipseでは不要とのことですが、 JAVA_HOMEやTOMCAT_HOMEなどは環境変数で 設定してみました。  やれることはやったつもりなのですが.. もう私レベルでは手詰まりとなってしまいました。 どなたかお助けください。。。

    • ベストアンサー
    • Java
  • Strutsの設定エラーについて

    現在、Java開発環境及びStrutsフレームワークの設定を行なっていたのですが、動作確認用のJSPを実行すると以下のエラーが表示されてしまいます。 HTTPステータス500- << 説明 >> The server encountered an internal error () that prevented it from fulfilling this request. << 原因1 >> javax.servlet.ServletException: アクション /BeginAction に対応するマッピングが見つかりません org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:858) org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791) org.apache.jsp.input_jsp._jspService(input_jsp.java:75)  <--- 略 ---> javax.servlet.http.HttpServlet.service(HttpServlet.java:802) filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:122) ※もうひとつ同様の原因が表示されていますが、長文となるため省略しています。 今回、Strutsを設定するにあたり、以下のページを真似て設定しました。 http://www.atmarkit.co.jp/fjava/rensai3/struts01/struts01_2.html また動作確認用のJSPは次に示すURLの"input.jsp"を使用させて頂いています。 http://www.atmarkit.co.jp/fjava/rensai3/struts02/struts02_1.html ※現在は、Strutsを使用しないJSPは正常に実行されます。 動作環境は、 OS:WindowsXP pro sp2 Tomcat:5.5.17 Java:J2SDK1.4.2_12 Stuts:1.3.5 です。 原因/対応策のご教授をお願い致します。

  • ◆Struts サンプルプログラムのURLがわかりません。◆

    Struts初心者です。教えて下さい。 http://www.stackasterisk.jp/tech/java/strutsSec01_03.jsp#5 上記サイトで勉強中にいきずまってしまいました。初歩的質問で申し訳御座いませんが教えて下さい。 4.Strutsアプリケーションの作成 で記載されている通りに jspファイル、javaファイルを配置し、struts-configファイルも記載されているようにしました。 画面を表示させたいのですが、どのような URLにアクセスすれば画面が表示されるのでしょうか・・?? web.xmlの中に urlマッピングする情報を追記したり、struts-configに追記したりする必要がありますのでしょうか・・・?? servletだと web.xmlに、<servlet-mapping>要素に<url-pattern>を定義してURLが判断できたのですが・・・・ 以下のようなURLでアクセスしているのですが、TomcatがHTTPステータス 404を表示します。。tomcatの再起動なども行なっております。 http://localhost:8080/struts-blank/jsp/loginForm.jsp 根本的に理解できていないと思うので、参考になるサイト、書籍などもあったら教えて下さい。 環境 WinXP,JDK1.5,Eclipse3.2,Struts1.2,Tomcat5.x 宜しくお願いします。

  • Strutsでoptionタグの作り方

    例えばActionFormのメンバにBeanのリストがあるとして、 JSPではStrutsのhtmlタグを使ってselectボックスのoptionに ActionForm内のBeanリストをセットする方法を教えて下さい。 具体的に実現したいことは以下のような事です。 例> // アクションフォーム public sampleForm extends ActionForm {  private List<sampleBean> sampleBeanList; // getter、setterは省略 } // JSPでStrutsタグ(<html:select>とか<html:options>)を使って以下のようなセレクトボックスを作成したい! // 実現方法をご存知のかた、どうかご教示ください。 <select> <option value="sampleBeanのプロパティ">sampleBeanのプロパティ</option> <option value="sampleBeanのプロパティ">sampleBeanのプロパティ</option> <option value="sampleBeanのプロパティ">sampleBeanのプロパティ</option> <option value="sampleBeanのプロパティ">sampleBeanのプロパティ</option> </select> ちなみに環境は以下の通りです。 Java 1.6 Struts 1.3.8 Tomcat 6 以上、宜しくお願い致します。

専門家に質問してみよう