后台数据无法再JSP前台显示
当在JSP网页(device.jsp)中的select控件进行选择后,我采用ajax把所选择的值传递到后台action。后台收到该选项值后,进行处理,再把处理结果显示到原来的JSP网页(device.jsp)中。
select控件的onchange函数如下, 通过ajax把所选择的值deviceIDValue, 传递到后台EditDeviceBehavior.action了:
var newRequest;
function getDevice()
{
var deviceIDValue = document.forms[0].device.value;
newRequest = new XMLHttpRequest();
var url = "EditDeviceBehavior.do?action=Create&device=" + deviceIDValue;
newRequest.open("get", url, true);
newRequest.onreadystatechange = processResponse;
newRequest.send(null);
return;
}
在EditDeviceBehavior.action中通过request.getParameter("device");我的确也得到了url中传来的值。
我把收到的值处理后, 把结果放到request.setAttribute("result", result);中,但是该结果在下面的javascript中显示不出来。
function processResponse()
{
if(newRequest.readyState == 4 && newRequest.status == 200)
{
<%
String myResult = (String)request.getAttribute("result"); // Statement A
if (myResult != null)
{
%>
alert(<%=myResult %>); // Statement B, 不执行
<%
System.out.println(myResult ); // Statement C, 执行
}
%>
}
return;
}
结果alert(<%=myResult %>); // Statement B, 就是不执行,无法把后台的数据传递到前端的JSP中。但是后面的System.out.println(myResult ); // Statement C,却能成功执行。
另外,如果把String myResult = (String)request.getAttribute("result"); // Statement A 改成了String myResult = "1234";则后面的Statement B和Statement C都能成功的执行。
各位大神帮忙看看这个问题,它困扰我好几天了。非常感谢了!!!