• 締切済み

strutsにおける<option>データの扱いについて

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

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

みんなの回答

  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.2

1.参考URLのとおりmultipleを使用する。  例 <select name="ID" multiple> 2.受け取るJSPではString[] getParameterValues(String name)の  ように配列で受け取る。 だいぶ苦労されているようですが 参考書などもよく読んでみるのもいいと思います。

  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.1

一例を示します。 <html> <head><title>オプション</title></head> <body> <form method="POST" action="Sample.jsp"> 番号選択: <br> <select name="ID" size="5"> <!--name="xxx"はgetParameter("xxx") --> <option value="100">100</option> <option value="101">101</option> <option value="102">102</option> <option value="103">103</option> <option value="104">104</option> </select> <p><input type="submit" value="送信する"></p> </form> </body> </html>

参考URL:
http://www.tagindex.com/html_tag/form/select.html
v_fievel_v
質問者

お礼

素早い回答ありがとうございます。 せっかく教えて下さったのにすみません。 そのサンプルはリストで「選択されている」データを取得するものですよね。 取得したいのは、選択されている、いないにかかわらず、 リスト内の全てのデータ(つまり全ての<option>データ)を取得したいのです。 もう少し詳細を言いますと、2つのリストボックスがあって、 その2つのリストボックス間をJavaScriptでデータを移動させた後、 片方のリストに含まれるデータ全てをサーバに送信したいのです。 ActionForm側でList型getter,setterを用意し、 <html:optionsCollection>タグで出力していて、 html出力はうまくいくのですが、submit時のデータ取得がうまくいきません。 optionデータはList型にsetされないのでしょうか?

関連するQ&A

  • 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 以上、宜しくお願い致します。

  • Excel 入力規則 元データ変更を反映

    質問です。 Excel2007で入力規則でリストを使用しています。 もともと「りんご」をリストで選択していたとして リストの元データの「りんご」を「めろん」に更新したら リストで「りんご」を選択していた部分を「めろん」に自動的に更新できないのでしょうか? やはり手動で「りんご」を「めろん」に置換する方法しかないのでしょうか? どうかご教示をお願いいたします。

  • StrutsのFormについて

    現在Struts(1.2)にてプログラムしているのですが、 分からない点があります。 とりあえず入力画面と入力画面表示時に必要なデータを取得してくる Actionクラスを作りました。 必要なデータとは、セレクトボックスの値でDBから取得しております。 で、取得したデータをActionクラスのexcute()が呼ばれたタイミングで、ActionFormの生成を(new)してそれにDBから取得した値をいれて 最後にrequest.setAttribute()で設定しています。 これは間違いでしょうか? というのも、Actionクラスのexcute()のところで、 request.getAttribute("XXXform",xxForm)としてやると、 Formが取得できます。本来はこのFormに設定するべきなのでしょうか? request.setAttribute()をしていないのにFormがあることに混乱しております。 単にstruts-config.xmlでFormの定義をしたら勝手に作成される ものなのでしょうか? なんだか言ってることが分からなくなってきた、、 言いたいことをまとめると、、 今は入力画面初期表示のために自分でActionFormをexecute()の はじめでNEWしてそれにデータをいれてrquestに設定しているが、 本来は既にrquestにあるFormをgetしてそれにデータをいれて再度、 rquestに設定するのが正しいのかどうかです。 宜しくお願いします。

    • ベストアンサー
    • Java
  • Struts 1.3.10 でoptionタグ

    初めてjavaをしている者で、質問内容は既に色々出ている様ですが 解決できなかったため、ご教授頂けないかと思い、投稿しました。 宜しくお願い致します。 エラー内容: 致命的: サーブレット jsp のServlet.service()が例外を投げました javax.servlet.jsp.JspException: org.apache.struts.taglib.html.BEAN という名前のbeanのプロパティ classcd に対するゲッターメソッドがありません java 1.6 tomcat 6.0 jsp 部分 <%@ page language="java" contentType="text/html; charset=windows-31j" pageEncoding="windows-31j"%> <!DOCTYPE form-validation PUBLIC "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.3.0//EN" "http://jakarta.apache.org/commons/dtds/validator_1_3_0.dtd"> <%-- Strutsタグの指定 --%> <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%> <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %> <html:html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-31j"> <title>商品マスタ登録</title> </head> <body> <%-- アクションパスを指定 --%> <html:form action="/login"> <html:select property="classcd" > <html:options collection="classcdList" property="id" labelProperty="name"/> </html:select> セッターゲッター部分 public String getClassCd() { return classcd; } public void setClassCd(String classcd) { this.classcd = classcd; } public ArrayList<SelectBoxData> getClassCdList() { return classcdList; } public void setClassCdList(ArrayList<SelectBoxData> classcdList) { this.classcdList = classcdList; } ActionForward execute部分 //月のセレクトボックスの初期化 ArrayList<SelectBoxData> list = new ArrayList<SelectBoxData>(12); for(int j = 1 ; j <= 12 ; j++){ SelectBoxData data = new SelectBoxData(); String setMonth = Integer.toString(j); data.setId(setMonth); data.setName(setMonth); list.add(data); } linFrom.setClassCdList(list); getHttpServletRequest.setAttribute("classcd", list);

  • Struts1.3.10でAjax連携

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

    • ベストアンサー
    • Java
  • Strutsのvalidate()でListの値がなくなる

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

    • ベストアンサー
    • Java
  • すでにあるデータと同じものを把握したい

    古いデータに出てきたのと同じ物は、排除したいと思います。 例 シートの名前=折り紙 古いデータ ・いちご ・バナナ ・りんご ・かき ・メロン ・すいか あたらしいデータ ・いちご ・ぶどう ・りんご ・かき ・もも とあるとします。 新たにでてきた情報だけを抽出したいのです(できれば消えた情報も把握したい) この場合 ・いちご ・りんご ・かき が新旧で情報が重複します。これは排除したい。 ・ぶどう ・もも これは古い情報にはなく、新しい情報にあるので、これを把握したい こういった感じです。 調べて、countif関数でやっていました ところ 古いデータの段階で countif(c:c,いちご,バナナ,りんご,かき,メロン,すいか) とやってみて、新しいデータを追加したら、古いデータと重複するところには、所定のセルの書式(背景を黄色に設定)になって反映するのかと思えば、なんの反応もなく・・・ なにか構文がおかしいのでしょうか。あるいはもっと簡単な方法がありますか

  • エクセル2010で 項目の抜き出しをしたい

    エクセル2010で 項目の抜き出しをしたいです。 たとえば、A列に りんご りんご バナナ トマト りんご バナナ みかん トマト メロン バナナ リンゴ みかん ぶどう とデータが入っているとき、これらのデータには、 トマト バナナ りんご リンゴ みかん メロン ぶどう という種類のデータが入っているということを簡単に表示する方法が知りたいです。 どうぞよろしくお願いします。

  • strutsでlist型の入力を行うには

    strutsでlist型の入力を行いたいのですが、サーバー側で上手く取得できません。 実際には struts-configに <form-bean name="TestForm" type="base.BaseActionForm"> <form-property name="testList" type="java.util.List" /> </form-bean> JSPには <logic:iterate id="testList" type="bean.TestBean" name="TestForm" property="testList" indexId="idx"> <tr> <td> <html:text property="strKamoku" name="testList"/> </td> </tr> </logic:iterate> beanは下記のようです。 public class TestBean implements Serializable, Cloneable { private String strKamoku; public String getStrKamoku() { return strKamoku; } public void setStrKamoku(String strKamoku) { this.strKamoku = strKamoku; } } 上記のように設定し、サーバー上でセットした値をテキストボックスに 入れてlist表示できたのですが、テキストボックスに入れた値を変更し、submitし、サーバー上でlistの中を見てみると、表示した時のままで変更した値が反映されてません。 表示したlistの値を変更する事はできるのでしょうか。 わかりづらい説明ですいませんが、なにかアドバイス宜しくお願いします。

    • ベストアンサー
    • Java
  • 【struts】<logic:iterate>で出力したtextボックス内のデータを更新する方法

    <logic:iterate>でBeanの中のリストをtextボックスで表示しています。 その中の値を変更して、Actionでゲットしたいのですが、 値が入っていません。 または、色々ためしても、もともとBeanに入っていた古い値しか取ってくることができません。 どうやったらデータの更新が可能になるか教えてください!!

    • ベストアンサー
    • Java

専門家に質問してみよう