質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
foreach

foreachは、List・Collection・Arrayといったデータ構造の各要素に対して繰り返し処理を実行するために扱われる、制御構造の構文です。

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

ArrayList

Java用のタグです。arrayListはListインターフェースを実装した、リサイズ可能な配列用クラスです。

Q&A

解決済

2回答

4845閲覧

jspでrequest.getParameter()した値を逆順に取り出したい

退会済みユーザー

退会済みユーザー

総合スコア0

foreach

foreachは、List・Collection・Arrayといったデータ構造の各要素に対して繰り返し処理を実行するために扱われる、制御構造の構文です。

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

ArrayList

Java用のタグです。arrayListはListインターフェースを実装した、リサイズ可能な配列用クラスです。

0グッド

0クリップ

投稿2015/12/13 02:13

java

1//DBから値を受け取るクラス 2public class Temp { 3 private String a; 4 5 private String b; 6 7 private String c; 8 //以降、各パラメータのgetterとsetter定義 9 //例)public void setA(String a){this.a = a;} 10 // public void getA(){return this.a} 11}

java

1//DBから値を受け取り、リストに格納する 2ArrayList<Temp> tempList = new ArrayList<Temp>(); 3//省略 DBコネクション処理 4while(DBから該当した行分){ 5 temp t = new Temp(); 6 t.setA(str1); 7 t.setB(str2); 8 t.setC(str3); 9 //リストに追加 10 tempList.add(t); 11} 12//省略 DB切断処理、サーブレットへの値渡し

java

1//jspに値を渡すサーブレット 2request.setAttribute("list", tempList); 3request.getRequestDispatcher("index.jsp").forward(request, response);

ここまでがjspへ値を渡すプログラムのだいたいの流れです。
分からないのがjspで受け取った値を逆順にforでループさせ表示させる部分です。

渡されたオブジェクトからJSTLを使って値を取り出し、foreachで回していましたが、どうやらJSTLは逆順のループに対応していないため別の方法を探しています。
何かアドバイスいただけませんか。

java

1//index.jsp 2<%@ page import="パッケージ名.Temp" %> 3<%@ page import="java.util.ArrayList" %> 4<% 5ArrayList<Temp> tempList = new ArrayList<Temp>(); 6tempList = (ArrayList<Temp>)request.getAttribute("tempList"); 7//この後で逆順にループするかもしくは 8//配列を逆順にしてからforしたい

分かりにくいかもしれませんが、よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

質問欄に書かれている

//DBから値を受け取り、リストに格納する クラスで

//リストに追加
tempList.add(t);

の部分を

tempList.add(0, t);

とすれば,コレクションの先頭に要素を追加するので
逆順のリストになります.(ArrayListの使い方としては好ましくありませんが..)

投稿2015/12/13 13:02

編集2015/12/13 13:06
Omoikanellc

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

JSPについてはわからないので通常のJavaの話になりますが…
次のような手法が考えられます。
1: Collections.reverse()を使って逆順にする

java

1Collections.reverse(tempList); 2//この後にforeach処理

2: forループのインデックスを最大から減じて行く

java

1for(int i = tempList.size() - 1; i >= 0; i--){ 2 Temp t = tempList.get(i); 3 //処理 4}

3: ListIteratorを使って逆順処理

java

1ListIterator<Temp> lIterator = tempList.listIterator(tempList.size()); 2while(lIterator.hasPrevious){ 3 Temp t = lIterator.previous(); 4 //処理 5}

投稿2015/12/13 02:31

swordone

総合スコア20651

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問