網絡上關于Struts2方面資料不少,之所以再重復一些關于Struts2的知識,只是因為本人正在學習Struts2,而且在學習的途中也遇見了不少的問題,由于沒有學過Struts2以前的版本,學習途中也是比較的痛苦,在此僅想記錄下我的學習歷程。
如果你對這個方面有深入研究,懇請你的指點;如果你也是初學者,希望這系列的文章對你有所幫助。
Struts2中的combobox類似HTML中的select,一個組合框,用起來很簡單。
而doubleselect的功能倒是很強大,就是我們傳說中的級聯菜單,記得用JavaScript寫也要寫一會。
先看combobox.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head></head>
<body>
<s:form>
<!-- 直接指定list集合里面的值-->
<s:combobox label="選擇你喜歡的顏色" name="colorNames"
headerValue="------請選擇------" headerKey="1"
list="{'紅','橙','黃','綠','青','藍','紫'}" />
<!-- 動態綁定list集合里面的值 -->
<s:combobox label="選擇你喜歡的顏色" name="colorName"
headerValue="------請選擇------" headerKey="1" list="colorname" />
</s:form>
</body>
</html>
因為動態綁定,再增加一個ComboboxAction.java:
package com.kalman03.action;
import java.util.ArrayList;
import java.util.List;
import com.opensymphony.xwork2.ActionSupport;
/**
* @FileName ComboboxAction.java
*
* @Author kalman03
*
*/
public class ComboboxAction extends ActionSupport {
private List colorname;
public List getColorname() {
return colorname;
}
public void setColorname(List colorname) {
this.colorname = colorname;
}
@Override
public String execute() throws Exception {
colorname = new ArrayList();
//colorname的選項當然是來自數據庫
colorname.add("紅");
colorname.add("橙");
colorname.add("黃");
colorname.add("綠");
colorname.add("青");
colorname.add("藍");
colorname.add("紫");
this.setColorname(colorname);
return SUCCESS;
}
}
配置struts.xml:
<action name="comboboxtag" class="com.kalman03.action.ComboboxAction">
<result>/combobox.jsp</result>
</action>
看效果:
我更加喜歡
doubleselect的強大,來體驗下:
doubleselect.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>struts2</title>
</head>
<body>
<s:form>
<!-- 可以用直接指定,當然也可以跟數據庫綁定的-->
<s:doubleselect label="Select Item" headerValue="---- 請選擇 ----"
headerKey="1" list="{'湖南省','湖北省'}" doubleName="dishes"
doubleList="top == '湖南省' ? {'長沙市','岳陽市','懷化市',
'株洲市','湘潭市','衡陽市','邵陽市','常德市','婁底市','張家界市','郴州市','永州市'} : { '其他'}" />
</s:form>
</body>
</html>
增加下列代碼到struts.xml:
<action name="doubleselecttag">
<result>/doubleselect.jsp</result>
</action>
瀏覽:http://localhost:8080/test/doubleselecttag.action
可以看到:

比起長長的JavaScript代碼要清晰明了多了,但是也使我們程序員變傻瓜了,所以還是要多看看源文件...