关键:当我们在Action中定义输出文件流时编码设置需要位于文件输出流之前:如下
public void getSubCatalog(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
String kindtype = request.getParameter("kindtype");
int index = Integer.parseInt(request.getParameter("index"));
MyPageManager mgr = (MyPageManager) getBean("myPageManager");
String result = mgr.getAlarmSelect(1, kindtype, index);
response.setContentType("text/xml;charset=UTF-8");//
response.setHeader("cache-control", "no-cache");
log.info(result);
PrintWriter out = response.getWriter();
out.write(result);
out.flush();
out.close();
}
JS:
function setKindType(num)
{
var kindtype = document.getElementById("kindtype" + num).value;
setKeywordType("keywordtype","1")
var xmlreq = null;
if (window.XMLHttpRequest) {
xmlreq = new XMLHttpRequest();
} else if (window.ActiveXObject) {
try {
xmlreq = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e1) {
try {
xmlreq = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
xmlreq = false;
}
}
}
xmlreq.onreadystatechange = function(){
var returnContent = "";
if(xmlreq.readyState == 4) {
if (xmlreq.status == 200) {
returnContent = xmlreq.responseText;
var phtml =document.getElementById("id1").innerHTML;
document.getElementById("id1").innerHTML = phtml + returnContent
} else {
alert("HTTP error "+xmlreq.status+": "+xmlreq.statusText);
}
}
};
cata_index = num +1 ;
//alert(cata_index +1);
xmlreq.open("POST","mypage.html?method=getSubCatalog",true);
xmlreq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlreq.send("kindtype="+kindtype+"&index="+cata_index);
}