struts2中select怎么选中不知道长度的list

SerialBean是这个专门获取电脑所有串口号的类,我已经在jsp中实现了select选中action选中的值,现在我想用struts2标签库来实现,谁帮忙改一下

[code="java"]
<%
SerialBean port = new SerialBean();
List list = port.listPortChoices();
%>

选择串口
<%
             for(int i=0;i<list.size();i++)
                 {
             if(list.get(i).equals(request.getAttribute("serial")))
             {
                 %>

                  <option value="<%=list.get(i)%>" selected><%=list.get(i)%></option>  
                <% }else { %>
                   <option value="<%=list.get(i)%>"><%=list.get(i)%></option>   

                <%}
                 }
                %>

举个简单例子,我的电脑上如果有COM1,COM2,COM3这3个串口,我在action中选择COM3,那么在这个页面会让COM3处于选中状态。
电脑上串口数目是不确定的

<%
SerialBean port = new SerialBean();
pageContext.setAttribute("port", port);
%>

/s:select

/s:select

s:select 在循环时 会把每个循环元素放入栈顶
[0].top 或 top 获取栈顶元素

action 中有个属性
private List list;//存放集合
private String serial;//存放选取的值
//get set 方法
在action 一个方法中赋值
例如
public String demo()
{
list= port.listPortChoices();
return SUCCESS;
}
页面:demo.jsp
[code="html"]


selected="selected"/c:if >${serial1 }
/s:iterator

[/code]

又白忙了。。。