Struts2的通过,而不是在操作类请求对象

问题描述:

我有一个<s:select list="myList" />从在Action类发现沿着其相关联的getter &制定者的List<String>被填充...Struts2的<S:选择列表= MYLIST“/>通过,而不是在操作类请求对象

按照这个简单的例子

https://www.mkyong.com/struts2/struts-2-sselect-drop-down-box-example/

不过,我想知道是否有可能不动作类中创建一个列表,而是存储在请求一个List对象

List<String> myList = new ArrayList<>(); 
myList.add("value1"); myList.add("value2"); etc... 
request.setAttribute("myList", myList); 

,并用它来填充<s:select list="myList" />

我曾尝试这一点,但我无法得到它的工作。我想知道这是我做错了还是只能做不成?

我的信念是,表格中的所有数据添加到无论如何在JSP的负载要求,如果它是手动添加按照上述这样要不要紧......

+0

可以,但可能不应该。 –

有可能像下面

List<String> myList = new ArrayList<>(); 
myList.add("value1"); myList.add("value2"); //etc... 
ActionContext actionContext = ActionContext.getContext(); 
if(null != actionContext) { 
     ValueStack stack = actionContext.getValueStack(); 
     stack.setValue("#request['myList']", myList); 
} 

然后

<s:select list="#request['myList']" /> 
+0

这就是感谢亚西尔...感谢塔贴的一些新的东西! –

+0

号为什么?别。 'request.setAttribute'工作得很好。 –

+0

当我测试这个Aleksandr时,一个简单的'request.setAttribute'不起作用。在Action中将列表设置为一个对象,并使用getter ans setter,以及Yasser的上述建议也起作用... –