Struts 2:如何从会话中的列表</s:select>中将值加载到<s:select>

时间:2012-06-15 15:02:03

标签: java jsp struts2

我是struts的新手。我想将会话中的数据列表加载到选择标记<s:select>,该标记等于纯html <select><option>values..</option></select>。可以从数据库加载数据并将它们放入列表中。我找了上网。但这一切都不适合我。请任何人让我知道如何做到这一点或提供与工作示例的任何链接。(包括动作类,struts.xml和jsp页面。最需要的代码就足够了。)

2 个答案:

答案 0 :(得分:1)

只要你在堆栈上的java.util.List中有值列表,你应该没问题:

<s:select label="Some label"          
list="yourList"
name="somName" />

您可以在此处找到示例:http://www.mkyong.com/struts2/struts-2-sselect-drop-down-box-example/

答案 1 :(得分:1)

我不确定您为什么要在会话中放置List? Struts2提供了一种将请求/响应数据放入Valuestack的简洁方法,它的OGNL系统提供了一种非常简洁的方法来从值栈中访问这些数据。您需要在操作类中使用其getter和setter以及UI使用构建struts2标记来访问这些数据。这是一个简单的代码来完成这个

行动类

public Class MyAction extends ActionSupport{

  private List<String> myList;
  //getter and setter for myList

  public String execute() throws Exception{
    myList=new ArrayList<String>();
   // fill the list
   return SUCCESS;
  }

}

在UI级别,您需要使用S2 select tag,如

JSP

<s:select label="MyList"
       name="myList"
       headerKey="-1" headerValue="Select Value"
       list="myList"

/>

这就是你需要做的。为了在struts.xml中映射它,它非常直接,你需要配置你的动作名称和它所尊重的类。希望这对你有帮助。 有关S2的更多详细信息,我建议参考官方文档。

如果你想把列表放在java类的session中并想在jsp中访问它,那么这里是JSP代码

%{#session.MyList}