2011-03-03 37 views
2
LoginAction.java

使用撑杆2标签检索的ArrayList的元素,而无需使用S:迭代

Questions.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; 
    } 
} 


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"; 
    } 

} 

源代码JSP的

源码:

给定的语句

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

给输出

[email protected]

我怎样才能获取,而无需使用迭代器使用Struts2的标签值问题的对象?

+1

您提取对象。这是它的'toString()'输出。如托马斯所示,打电话给你想要的子财产。 – 2011-03-03 17:58:24

回答

7

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

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

+0

它的工作原理..非常感谢... – Shashi 2011-03-05 04:43:13

+0

无需解释就可以获得评分总是很好的;) – Thomas 2012-08-20 08:12:50

-2

另一种方式来获得Question对象的值是添加这个标签:

<s:property value="list" /> 

,然后加在QuestionstoString方法。