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

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

ただいまの
回答率

90.48%

  • Java

    14152questions

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

  • JSP

    949questions

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

  • Java EE

    376questions

    Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

  • サーブレット

    120questions

    サーブレット(Servlets)とはウェブやアプリケーションサーバー上に動くプログラムのことであり、ウェブブラウザや他のHTTPクライエントとデータベースやHTTPサーバー上のアプリケーションの中間層としての働きをします。

【JSP】sessionに入れられた配列の中身をすべて取得したい

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 881

shim1

score 24

sessionに入れられている配列を取得したいんです。

Struts2側
public class data{
private String id;
private String name;

public data(String id, String name){
this.id = id;
this.name = name;
} //コンストラクタ


ArrayList<Object> list = new ArrayList<>();
list.add(new data("1","aiueo"));
list.add(new data("2","kakikukeko"));
list.add(new data("3","sasisuseso"));
session.put("data",data);
//jsp側
<s:property value="session.data" />  //取得できない。

<s:property value="session.data" >
 <s:property value="id" />
 <s:property value="name" />
</s:property> //これもエラーが起きる


<s:property > タグを使い取得の仕方を教えてください

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • A-pZ

    2018/05/26 11:24

    JSPのコードを見る限りStruts2を使っているので間違いないでしょうか? Struts2であればServletを実装する必要がありませんし、サーブレットとJSPだけで作成されているのであれば、<s:property>は利用できません。

    キャンセル

  • shim1

    2018/05/26 12:13

    struts2をつかっています。struts2をつかっていたら裏を処理はサーブレットとは言わないんですねl修正しときます。

    キャンセル

回答 1

checkベストアンサー

0

Struts2でセッション情報を扱うには、ActionクラスにSessionAwareを実装します。

@Namespace("/")
@Results({
    @Result(name=ActionSupport.SUCCESS, location="list.jsp")
})
public class DisplayAction extends ActionSupport implements SessionAware {
    @Action("/")
    public String execute() throws Exception {

        List<SampleData> list = new ArrayList<>();

        list.add(new SampleData("1","aiueo"));
        list.add(new SampleData("2","kakikukeko"));
        list.add(new SampleData("3","sasisuseso"));

        session.put("list",list);

        return SUCCESS;
    }

    @Override
    public void setSession(Map<String, Object> session) {
        this.session = session;
    }

    private Map<String, Object> session;
}

※見た目にわかりやすいよう、dataクラスの名前をSampleData、セッションに格納した名前を list に変えています。

SampleDataクラスはおそらく以下のようになっているかと思います。

public static class SampleData {
    private String id;
    private String name;

    public SampleDate(String id, String name) {
        this.id = id;
        this.name = name;
    }

    public String getId() {
        return id;
    }

    public String getName() {
        return name;
    }
}

これを表示するJSPは次のようになるでしょう。

<%@ page contentType="text/html; charset=UTF-8" isELIgnored="false"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<body>
<s:iterator value="#session.list">
    <s:property value="id"/> ,
    <s:property value="name"/>
    <br />
</s:iterator>
</body>
</html>

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

関連した質問

  • 解決済

    ServletからJSPにリストを返し、プルダウンに表示させたい

    プログラミング初心者です。jspにてプルダウンを表示させようとしています。その際にjspは、ServletでArrayListに格納した値を受け取り、プルダウンにて表示させようとし

  • 解決済

    jspの入力フォームに初期値を設定したい

    質問です。 jspの入力フォームの初期値に変数を設定するにはどうすればよいでしょうか。 DaoクラスでMysqlからレコードを取得してservlet→jspと情報を持ってくると

  • 解決済

    jsp:入力フォームの未入力チェックがうまくできません

    質問です。 jspの入力フォームの未入力チェックの部分を作成しているのですがうまくいかないです。 テキストボックスの部分は正しくチェックしているようなのですがラジオボタンやプル

  • 受付中

    forEach文でcheckboxをだすときに

    jspで、forEach文でcheckboxを出すとnameが同じになるので配列でパラメーターを受け取ります。 そのときチェックされたものが配列の[0]から入ってしまいますが、も

  • 解決済

    servletからjspへの値渡しについて

    ずっと悩んでいます。どうか助けてください。 現在、servletとjspを使用した画面を作成しています。 内容は、 ・『入力画面』のテキストボックスから文字を入力し、

  • 解決済

    ArrayListを使用した掲示板

    現在、servletとjspを組み合わせて小説投稿掲示板を作成しています。 jspで設定した4つのテキストボックスから値を入力し、servletに投げてArrayListで処理を

  • 解決済

    SpringMVC hiddenを使って値をJSPからJSPに渡す。

    前提・実現したいこと SpringMVCを使ってWEBアプリケーションを作っています。 ラジオボタンで選択した項目を、hiddenを使って渡したいです。 Controlle

  • 解決済

    selectタグのoptionをDBから取得し、表示したい

     前提・実現したいこと javaとstruts2を使用し、 selectタグの選択肢にデータベースから取得したものを表示するプログラムを作成してるところですが、 文字列の表示がうま

同じタグがついた質問を見る

  • Java

    14152questions

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

  • JSP

    949questions

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

  • Java EE

    376questions

    Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

  • サーブレット

    120questions

    サーブレット(Servlets)とはウェブやアプリケーションサーバー上に動くプログラムのことであり、ウェブブラウザや他のHTTPクライエントとデータベースやHTTPサーバー上のアプリケーションの中間層としての働きをします。