我上篇文章说的是struts2<s:select>标签的使用,但是在某些情况下html<select>标签有它不可替代的作用。比如,下拉框默认显示文字“请选择港口名称”需要做国际化处理时,struts2<s:select>标签就无法进行处理,这时就必须使用html<select>。代码如下:
<select id="portTest" name="portInfo.id" style="width:135px">
<option value=""><s:text name="struts.webui.logistics.label.chooseGangkou"/></option>
<s:iterator value="port" var="portInfo" status="vs">
<option value="<s:property value="#portInfo.portName"/>"><s:property value="#portInfo.portName"/></option>
</s:iterator>
</select>
默认第一个选项<option value=""></option>之间使用文字国际化处理非常方便。从第二个开始使用<s:iterator>标签循环迭代下拉框中的内容。后台代码如下:
/**
* 获取港口下拉框信息
* @param
* @return
*/
public List<PortInfo> getPort() {
try {
portList = logisticsFacadeManagerBo.searchPort1();
}catch (final Exception ex) {
Logger.getLogger(LogisticsAction.class.getName()).log(Level.SEVERE, null, ex);
ex.printStackTrace();
}
return portList;
}
<s:iterator>中的value属性是后台get方法去掉get后的名称,必须一致。var属性我是用对应港口信息表的model类名称定义的。目的是取得它的港口id和港口名称。