方法-:直接在action設定get和set方法,然後在jsp頁面中使用iterator迭代輸出,但是一定要注意格式。就是被這個格式搞了一下午。
<s:iterator value="list" id="id"> <tr><td><s:property value="#id.number" /></td> //使用標籤 <td>${id.name}</td></tr> //使用EL運算式 </s:iterator>
或者是不聲明id,直接<s:property value="number" />
方法2:把list存入request中,顯示方法和jsp頁面相同。但個人認為是多此一舉。因為既然struts提供了參數的攔截器,我們為什麼不利用呢,格式如下:
<s:iterator value="#request.list" > //此處一定要加上#request,表示從棧裡面取出該list。也可以設定id,但下面的格式為#id.number。也一定要加#,表示從棧內取值 <tr><td><s:property value="number" /></td> <td><s:property value="name" /></td></tr> </s:iterator>
哎,最近都是一個小問題能折磨我一天的時間,看來這都是因為我平時學習的時候不仔細,很浮躁。一個東西還沒精通,又趕緊學另外一個東西,而且容易鑽牛角尖。往往在學一個新東西的時候會因為以前的知識不會,而又回頭學以前遺留的重點。這樣很浪費時間。以後我要好好安排我的學習計划了,看書也要靜下心來,不急於求成~
這個講iterator的文章還不錯:http://hi.baidu.com/songjiafeng/blog/item/5b5a6c4bf3375e2b08f7ef71.html
註:1.剛才看了一篇文章是這樣說的:我們使用struts2的一些標籤,屬性是需要接受集合的,如果集合是儲存在request,session,或者是值棧(非根對象的棧頂),可以使用#變數名的方式,如果擷取的值是在Action中通過特定的方法來擷取,就需要使用如 value="userList"這樣的方式,只是去掉了前面的#。
2.在struts2標籤內部使用的運算式是%{}為OGNL運算式,在JSP頁面中可以使用形式為${}為EL運算式。