参考博客:http://hardwin.iteye.com/blog/498044
总算把想到的东东弄出来了。下面先记录一下
首选在struts.xml里加入,就像普通的struts的action一样加入就OK了
<action name="ajaxGetType" class="net.mtk.action.ReactAction">
</action>
JSP调用,一般说不好这样写的,但是不管了,黑猫白猫,抓到老鼠就是好猫
<td width="100">
<s:select headerValue="--请选择--" headerKey="0"
list="CpTvValueForm.CpOrgList" name="CpTvValueForm.Cp_id_qry"
listKey="cp_id" listValue="cp_name"
cssStyle="width:180px" value="CpTvValueForm.Cp_id_qry" οnchange="onchangeShow(this.value)"></s:select>
</td>
<th width="100">
通道选择
</th>
<td width="100">
<select name="tv_prot_id_qry" id="tv_prot_id_qry" style="width:160px"></select>
</td>
下面是JS
<script type="text/javascript">
jQuery(function($){
var obj=$("#CpTvValueForm.Cp_id_qry");
if(typeof obj != 'undefined' && obj !=''){
onchangeShow(0); //初始化的时候,也执行一次,不然没有数据下来
}
});
function onchangeShow(cp_id){
jQuery.ajax({
url : "${contextPath}/mtk/ajaxGetType!cpTvPort.action", //这个要全路径,有着血淋淋的教训
data : {cp_id_qry : cp_id}, // 传递参数
type : "post",
cache : false,
dataType : "json",
success:onchangecallback //开始一直觉得调用的时候怎么没有参数,后来发现确实不需要
});
}
function onchangecallback(data){
var jqueryObj=$(data); //从action获取数据
document.all['tv_prot_id_qry'].options.length = 0;
var str="<option value='0'>--全部--</option>";
for(var i=0;i<jqueryObj.length;i++){
str+="<option value='"+jqueryObj[i].tv_prot_id+"'>"+jqueryObj[i].tv_name+"</option>"
}
$("#tv_prot_id_qry").html(str);
}
</script>
action里的文件
public void cpTvPort() throws SQLException, IOException {
CpTvPortPageDao CpTvPortDao = new CpTvPortPageDao();
CpTvPortList = CpTvPortDao.select(0, 0, 0, cp_id_qry, null, 1000, 1);
JSONArray jsonObj = JSONArray.fromObject(CpTvPortList);
sendMsg(jsonObj.toString());
}
public void sendMsg(String content) throws IOException {
HttpServletResponse response = ServletActionContext.getResponse();
response.setCharacterEncoding("UTF-8");
response.getWriter().write(content);
}
另外就一几个包,和js一定要导入jquery.js,json2.js
commons-beanutils-1.7.0.jar
commons-collections-3.2.jar
commons-lang-2.0.jar
commons-logging-1.0.4.jar
ezmorph-1.0.2.jar
json-lib-2.2.2-jdk15.jar