一直没用过struts,最近工作涉及到使用struts action 返回前端定义的枚举值问题,话不多说,直接上码。
- 编辑Action类。
public class FindXzattrAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest req, HttpServletResponse resp) throws Exception {
Logger logger = Logger.getLogger(FindXzattrAction.class.getName());
resp.setContentType("text/xml;charset=UTF-8");
resp.setHeader("Cache-Control", "no-cache");
PrintWriter out = resp.getWriter();
List<String> xzSaleList = CommonUtil.findXzSale();
out.println("<response>");
out.println("<code>");
String xzSaleInfo = StringUtils.join(xzSaleList, "#");
logger.error(xzSaleInfo);
out.println("<MSG>"+xzSaleInfo+"</MSG>");
out.println("</code>");
out.println("</response>");
return null;
}
}
- 配置struts.xml
<action-mappings>
<action path="/FindXzattr" type="action.FindXzattrAction" scope="request" />
</action-mappings>
- 编辑前端jsp和js
导入相关js,
<SCRIPT src="<%=request.getContextPath() %>/js/base.js"></SCRIPT>
<SCRIPT src="<%=request.getContextPath() %>/js/jquery.js"></SCRIPT>
<SCRIPT src="<%=request.getContextPath() %>/js/xzxinxi.js"></SCRIPT>
更改JS
//调用上文写好的action
function queryXzsale(){
var url = "/team/FindXzattr.do";
createRequestObject();
XMLHttpReq.open("GET", url, false); //false 为同步
XMLHttpReq.onreadystatechange = queryResponseXzsale;
XMLHttpReq.send(null);
}
//onload调用的函数
function queryResponseXzsale() {
if (XMLHttpReq.readyState == 4) { // 判断对象状态
if (XMLHttpReq.status == 200) { // 信息已经成功返回,开始处理信息
loadListXzsale();
} else { //页面不正常
window.alert("您所请求的页面有异常。");
}
}
}
//解析响应报文
function loadListXzsale() {
var xmlDoc = XMLHttpReq.responseXML;
var codes = xmlDoc.getElementsByTagName("code");
var kvArr = new Array();
if (codes[0].getElementsByTagName("MSG")[0] != null) {
if (codes[0].getElementsByTagName("MSG")[0].firstChild != null) {
var msg = codes[0].getElementsByTagName("MSG")[0].firstChild.nodeValue;
if (msg != null && msg != "") {
var xzArr = new Array();
xzArr = msg.split("#");
for (m = 0, len = xzArr.length; m < len; m++) {
var itemArr = new Array(2);
itemArr = xzArr[m].split("|");
kvArr[m] = new KeyValue(itemArr[1], itemArr[0]);
}
} else {
window.alert("查询失败!");
}
}
}
//设置下拉框
base.setValueToSelect("zdaddXzsale", kvArr, 2);
}