实现框架:struts2+jquery+json
一.JSON介绍:
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。
二.实现步骤:
2.1:/WEB-INF/lib/下导入
struts2/json-lib-2.1.jar,
struts2/struts2-json-plugin-2.1.8.1.jar
2.2:jsp文件代码:
<script type="text/javascript"src="scripts/jquery-1.3.2.js"></script>
<script type="text/javascript">
function getCom(){
var pid=$("#area_id").val();
//alert(pid);
$.ajax({
cache:false,
url:'ajaxGetComName.action',
type:'post',
dataType:'json',
data:{area_id:pid},
success:update_c
});
}
function update_c(json){
var comList=json.list;
//alert(comList);
var s_root=document.getElementById('com_id');
s_root.options.length=0;
var pid=$("#area_id").val();
for(var i in comList){
var option = document.createElement("option");
var value=comList[i].com_id;
var text=comList[i].com_name;
var area_id=comList[i].area;
if(pid==area_id){
option.text=text;
option.value=value;
s_root.options[s_root.options.length] =option;
}
}
}
</script>
<tr>
<td align="right" width="35%">品牌:</td>
<td><select name="area_id" id="area_id" onchange="getCom()">
<option value="1">欧 美</option>
<option value="2">日 韩</option>
<option value="3">国 产</option>
</select>
<select name="ter.com_id" id="com_id">
</select></td>
</tr>
2.3:struts.xml文件:
<package name="default" extends="struts-default,json-default">
增加extends json-default
<action name="ajax*" class="com.aspire.mdo.ualib.action.ComAction" method="ajaxGetComName">
<result type="json" ></result>
</action>
2.4:java文件:
private List<MobileCompanyBaseInfoPO> list;
@JSON(name="list")
public List<MobileCompanyBaseInfoPO> getList() {
return list;
}
public String ajaxGetComName(){
try{
list = dao.getMobileCompanysBaseInfoByArea(area_id);
}catch(Exception e){
e.printStackTrace();
log.error(e);
}
return SUCCESS;
}