• 締切済み

Struts,クエリーストリング

Strutsを使って開発をしています。 まだ使いこなせてないせいか、うまくいかないのですが、 検索結果の各データの右側にボタンをつけて、 そのボタンを押したとき ページ移動先でどのボタンが押されたか判断したいです。 以前Strutsを利用してないときには、クエリーストリングを使って判断していたのですが、 ActionMappingを使うようになってからクエリーストリングが使えなくなりました。 どうすればいいでしょうか。

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

みんなの回答

  • process9
  • ベストアンサー率29% (81/272)
回答No.2

DispatchActionが基底であれば、 Struts-Config(ActionMapping)で 簡単に指定ができたんでしょうけど。。。 2通りしかないでしょうね。 1.ActionFormにボタン種別のプロパティ作って 画面からボタン種別を常にポストするよう作成し、 executeのなかでさらに各ボタン用メソッドを呼び出す 作り方。DispatchAction (ActionFormにプロパティ作るのがメンドクサイのであれば、 requestから、クエリーストリングを取得して、strutsを使用する前と同じやり方に する。) 2.画面単位ではなく、ボタン処理単位でActionを作成していく。 (Action の意味としては、こちらが正しい 。) ですね。

libido
質問者

お礼

ごめんなさい。自己解決いたしました。 いろんな方法を試しているうちにクエリーストリングが使えました。 タグライブラリを使うと使えなかったんですけど、普通のHTMLのタグを使ったら できました。 ありがとうございました~。

  • process9
  • ベストアンサー率29% (81/272)
回答No.1

Action基底クラス(extend)は何を使ってますか? (Action,ActionBase, AddFormBeanAction, AddForwardAction, AddMappingAction, DispatchAction, ForwardAction, IncludeAction, ReloadAction, RemoveFormBeanAction, RemoveForwardAction, RemoveMappingAction)

libido
質問者

補足

Actionクラスを使っています。

関連するQ&A

  • Strutsでページネーションを実現するには

    Strutsでページネーションを実現するには お世話になります。 現在、私はStrutsを使って業務アプリケーションの開発を行っています。 現在作成しているページにページネーション(出力する情報の件数が多い場合に、次のページ、前のページ、最初のページ、最後のページなどのリンクを付けること)を付けたいが、やり方が分からずに困っています。 現在作成しているページには、従業員を検索するために各種検索条件を入力するフォームがあり、送信ボタンを押すとActionクラスが呼び出され、Actionクラスの中で従業員の検索が行われ、結果が画面に帰ってきます。 しかし、ページネーション用のリンクを作ってそのリンクをクリックしたとしても、フォームの送信ボタンを押す訳ではないので、従業員の検索が行われる訳ではありません。 行いたいのは、フォームに入力した検索条件を常に反映した結果の従業員のリストをページネーションしたいということです。 何か良い方法はないでしょうか。皆様の知恵をお貸しください。よろしくお願い致します。

    • ベストアンサー
    • Java
  • strutsデバッグ

    お世話になります。しろと申します。 現在、いろいろ検索したりしながらWeb開発をやっている素人です。 jsp/servletを利用して、Strutsを導入、やっておりますが、Strutsの部分についてのデバッグ方法がわからなく困っている状態です。 非常に私の質問の仕方が悪いと思っておりますが、 それぐらい今のところ整理ができてません。正直にどこから手を出せば良いかっていうこともわかりません。 いったいどういう風に進めば良いでしょうか。 参考ぐらいでも幸いですので、 ご教授、ご助言など宜しくお願い致します。

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

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

    • ベストアンサー
    • Java
  • アクセスの削除クエリでいいのでしょうか?

     データベースで検索できるようにしたいのですが・・・・。クエリの検索結果をフォームに反映させています。  検索結果表示後、もう一度検索フォームに戻り、検索をかけたときヒットするデータがないにも関わらず前回の検索結果が表示されたままになってしまいます。 削除クエリを使用すればいいのでしょうか?  また削除クエリをどのように設定したらいいのでしょうか?(たとえば抽出条件が必要なのでしょうか?)  この場合、マクロはいったん削除クエリを開き、もう一度クエリを開く設定でいいのでしょうか?分かりにくい質問ですいませんが教えてください

  • アクセス2010;クエリ結果の中に埋込マクロボタン

    クエリで得た結果の各行の中に、マクロを実行するボタンを設置したいのですが、どのようにやればよいでしょうか。 あるクエリ実行結果の各行にID番号のフィールドがあります。この隣にボタンを設置し、クリックすると該当行のID番号のデータの入力フォームが開くようにしたいです。 クエリ実行結果にボタンを設置することは、そもそも不可能でしょうか。できるとしたら、手順や参考ページなどを教えていただくだけでも助かります。よろしくお願いします。

  • Accessのクエリ

    初めまして。Accessのクエリについての質問です。 Access2003を使っています。 検索フォームを作り、その検索フォームにテキストボックスを2つ作り、そのテキストボックスに検索したい言葉を入力し、コマンドボタンで作った検索ボタンを押すとマクロでフィルタの実行がされデータを抽出できるというものを作りました。フィルタには選択クエリを使用しています。抽出したい2つのフィールドの抽出条件にあいまい条件のLike "*" & [Forms]![フォーム名]![テキストボックス名] & "*"を入れています。 今はテキストボックスが2つですが、もっと増やしていろんな条件で検索出来るようにしたいので、3つ目のテキストボックスを作り、抽出条件も同じように入れました。ですが、そうすると今までちゃんとできていた最初の2つのテキストボックスによる抽出が違った結果となりでてきました。このとき、新しく作った3つ目のテキストボックスは空欄なので最初と同じ結果が出ると思ったのですが、これは抽出条件が3つはできないということでしょうか?どなたか教えてください。

  • Struts の画面遷移について

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

    • ベストアンサー
    • Java
  • 「Struts使用中」XMLからデータ取得

    FormBeanにセットされた値を取得して、その値を元に一致するデータをXMLからとってきてそれらをテキストに落とし込む。という動作です。 最初はFormBeanにセットされた値をそのままテキストに落とし込むだけだったので楽にできて正常に動いていましたが、「XMLからとってくる」という動きを追加しようとしたところうまくいきません。 public class Test extends Action { (1) public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest req, HttpServletResponse res) {   FormBeanからキーになる値をとってくる。 } (2) public static void main(String[] args) throws Exception { Document document = DocumentBuilderFactory.newInstance()  キーとなる値を元にXMLからデータ検索し、値を取得 } (3) public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest req, HttpServletResponse res) {   そのほかのFormBeanの値をとってきて(2)で取得した値と一緒にテキストに落とし込み、returnで処理終了のjspを表示させる }  public ActionForward executeが(1)と(3)で2回でているからコンパイルエラーがでるのだとわかるのですが、その他の記述方法がわかりません。  ネットでいろいろ探したのですが、XMLparserのサンプルやStrutsのサンプルはあるのですが、2つ一緒のサンプルが見つからないので困っています。  ご存知の方よろしくお願いいたします。

    • ベストアンサー
    • Java
  • Access2007のフォームとクエリについて

    Access2007、OSはwindows7での開発です。 フォームのレコードソースに自分で作ったクエリを張り付けているのですが、 コードの中でクエリを変更し、その変更した内容がフォームに反映のされ方がおかしくて困っています。 前の画面で年月を入力し、ボタンをクリックすることで次の画面へ移行し、前の画面の年月でクエリを書き換えています。クエリは書き変わっていますし、クエリを書き換えた後にフォームをリクエリしています。しかし、フォームに反映されているデータは直前に入力した年月ではなく、その1つ前の年月のデータが出てきます。 流れとしましては、 年月入力画面で年月入力⇒作成ボタン押下で時間テーブルを見て、データが無ければ新しく作る。あればそのデータを表示というながれです。 説明下手なので理解しにくいかもございませんが、ご協力よろしくお願いします。

  • java のstruts1.3です。

    java のstruts1.3です。 Cannot invoke newStrutsKadai.EntryWorkForm.setArrayDB on bean class 'class newStrutsKadai.EntryWorkForm' - argument type mismatch - had objects of type "java.lang.String" but expected signature "java.util.ArrayList" と言うエラーがでます。 以下javaのソースです。DB接続は完璧に出来ています。 public final class EntryWorkForm extends ActionForm { private static final long serialVersionUID = 1L; private String cmbOsName; ArrayList<EntryWorkForm> array = new ArrayList<EntryWorkForm>( ) ; public void reset( ActionMapping map, HttpServletRequest req ) { //必要な部分だけ抜粋 //検索された行数文ループ while( rs.next( ) ) {//本マスタテーブル 検索された行数文ループ String stOSName = rs.getString("OSName"); //上記の2行を丁寧に記述した EntryWorkForm obj = new EntryWorkForm( stOSName.toString() ); array.add( obj ) ; } //END while( rs.next( ) ) this.setArrayDB( array );//ここでエラーエラーエラー } /****************************************************************************************/ private ArrayList<EntryWorkForm> arrayDB = new ArrayList<EntryWorkForm>( ); //セット オブジェクト配列 public void setArrayDB( ArrayList<EntryWorkForm> arrayDB ){ this.arrayDB = arrayDB; } //ゲット オブジェクト配列 public ArrayList<EntryWorkForm> getArrayDB ( ) { return this.arrayDB ; } /****************************************************************************************/ public String getCmbOSName ( ) { return this.cmbOsName; } public void setCmbOSName ( String cmbOsName ) { this.cmbOsName = cmbOsName; } public EntryWorkForm( ) { } //コンストラクタ 引数あり EntryWorkForm ( String cmbOSName ) { System.out.println("テスト用で作成したコンストラクタが呼ばれています。 ReturnScreenFormDB.java"); cmbOsName = cmbOSName; } 質問です--- JSPでセレクトボックスに動的に出力しています。 JSP画面でボタンを押して画面遷移をすると上記のエラーが出ます。

    • ベストアンサー
    • Java

専門家に質問してみよう