使用struts 2标记检索ArrayList的元素,而不使用s:iterate

时间:2011-03-03 11:38:54

标签: java jsp tags struts2

LoginAction.java的源代码


package com.test;

import java.util.ArrayList;
import java.util.List;

public class LoginAction {

    private List list;

    public void setList(List list) {
        this.list = list;
    }

    public List getList() {
        return list;
    }

    public String execute() {

        list = new ArrayList();

        list.add(new Questions("Pet Name", "Junk"));

        list.add(new Questions("Nick Name", "Bunk"));

        list.add(new Questions("Real Name", "Hunk"));

        return "SUCCESS";
    }

}

问题源代码.java


package com.test;
public class Questions {

    private String question;
    private String answer;

    public Questions(String question, String answer) {
        // TODO Auto-generated constructor stub

        this.question = question;
        this.answer = answer;
    }

    public void setQuestion(String question) {
        this.question = question;
    }

    public String getQuestion() {
        return question;
    }
}

在JSP中:

给定的陈述

 <s:property="list[0]"/>

提供输出

com.test.Questions@32bf232e1

如何在不使用迭代器的情况下使用struts2标记获取值Question对象?

2 个答案:

答案 0 :(得分:7)

尝试<s:property="list[0].question"/>

<s:set name="question" value="list[0]"/>然后<s:property="#question.question"/>

答案 1 :(得分:-2)

获取Question对象值的另一种方法是添加此标记:

<s:property value="list" />

然后在toString类中添加Questions方法。