2017-10-18 45 views
0

我有一個<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

可以,但可能不應該。 –

回答

2

有可能像下面

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的上述建議也起作用... –

相關問題