

jspでiteratorを使ってセッションを値を取得したいんですが、

[code]

    <s:form action="hogeAction" >  //hogeActionに送る
    <s:iterator value="session.data">　//session.dataに入ってるデータをiteratorで 
    取得している
    <s:property value="name" />　//session.dataの中のname
    <s:property value="id" />　　//session.dataの中のid
    
    <input type="hidden" name="item" value=' <s:property value="name" />’>
    //↑ここでもsession.dataの中のnameを取得したいんだが、なぜか入っては、いるものの 
    nameの値全部が入っている。 
    </s:iterator>
    </s:form>
    
[/code]

inputの前でもiteratorしましたが思うように行かず、、、  
iteratorで取り出せるのは一回までなんですかね？？？

追記:  
session.dataのnameの値はapple,orange,peachが配列の中に入っており、イテレータを使ってJSPに一つずつ表示させます。クリックしたら買い物カゴにぶち込むという機能をつけるべく、formの中にdivタグでその中にそれぞれデータを入れます。クリックしたやつだけデータを送り、買い物カゴに入れたいんです。formで送る値はinputの中に書かなければいけないらしく、hidden属性にしました。んでクリックして確認のために表示させてみるとappleのところをクリックしたのに配列全部の値を取得してしまいました。なぜかtypeをcheckboxにしてみるとチェックしたやつだけ表示できました。が、そのdivタグ内に写真やら説明文やらを追加する予定でそれらどれでもいいのでクリックしたら買い物カゴに追加したいのでcheckboxだと、うーんという感じです。モヤモヤを消したいです。


CC BY-SA 4.0
2018-05-23T21:57:39.620
44199
2019-09-09T09:00:44.147
2018-05-24T07:37:35.543
21092
28615
question
java jsp struts
jspのiteratorについて


今のコードからは、`name`属性が同じ3つの`input`タグが出力されるので（以下）、リクエストパラメータ`item`の値はapple,orange,peachの3つになります。

[code]

    <input type="hidden" name="item" value="apple" />
    <input type="hidden" name="item" value="orange" />
    <input type="hidden" name="item" value="peach" />
    
[/code]

クリックしたものだけデータを送りたいのであれば、それを識別できる簡単な仕組みを実装する必要があります。それに関してはググって調べて下さい。

**追記**

> ありがとうございます！グーグルさんに聞いたところよくわかりませんでした。

ググって最初に以下の記事が出てきました。参考になると思います。

<https://stackoverflow.com/questions/13020727/how-to-submit-specific-iterator-
entry-to-action-in-struts-2>


CC BY-SA 4.0
2018-05-24T03:03:40.063
44205
2018-05-24T04:41:22.623
2018-05-24T04:41:22.623
21092
21092
44199
answer