新人,在Struts2项目中需要实现一个下拉框联动,网上查了一下,基本上全是jquery+json,因为太菜,所以看得很晕,最后用最原始的方法解决了。项目结束有两天空闲,总结一下,项目代码不能贴出来,自己又随便写了一个,放在微博里记录一下,存在什么问题也请大家指正。
GET类型
JSP端JS
function selectChange() {
// + new Date().getTime() 防止浏览器缓存
var url = "/Curiosity/Curiosity/testAjaxcommonAjax.action?selectNum=1&selectType=single&t=" + new Date().getTime();
var xmlhttp;
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{// IE6, IE5不支持XMLHttpRequest
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{//返回值处理部分
document.getElementById("showDiv").innerHTML=xmlhttp.responseText;
}
};
xmlhttp.open("GET", url, true);
xmlhttp.send();
}
JAVA端取参数
public String testAjaxMethod() throws IOException {
String result = "AJAX请求已收到";
HttpServletRequest request = ServletActionContext.getRequest();// ServletActionContext Struts2提供的取上下文的方法
String selectNum = (String) request.getParameter("selectNum");
String selectType = (String) request.getParameter("selectType");
result = result + selectNum + selectType;
ServletActionContext.getResponse().setContentType("text/html;charset=utf-8");
ServletActionContext.getResponse().getWriter().print(result);
return null;
}
POST类型
JSP端JS
function selectChange() {
var url = "/Curiosity/Curiosity/testAjaxcommonAjax.action?t=" + new Date().getTime();
var xmlhttp;
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{// IE6, IE5不支持XMLHttpRequest
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{//返回值处理部分
document.getElementById("showDiv").innerHTML=xmlhttp.responseText;
}
};
xmlhttp.open("POST", url, true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("selectNum=1&selectType=single");
}
JAVA端
private String selectNum;
private String selectType;
public String getSelectNum() {
return selectNum;
}
public void setSelectNum(String selectNum) {
this.selectNum = selectNum;
}
public String getSelectType() {
return selectType;
}
public void setSelectType(String selectType) {
this.selectType = selectType;
}
public String testAjaxMethod() throws IOException {
String result = "AJAX请求已收到";
result += this.selectNum + this.selectType; // Struts2 自动把POST提交的参数放到Action里,定义好变量,写好GET、SET方法就可以了
ServletActionContext.getResponse().setContentType("text/html;charset=utf-8");
ServletActionContext.getResponse().getWriter().print(result);
return null;
}
ServletActionContext.getResponse().setContentType("text/html;charset=utf-8");
我的前台页面使用的是utf-8,这一句可以保证返回的中文没有乱码!!!