后台数据无法再JSP前台显示

OneMoreFreeMan OneMoreFreeMan 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
当在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都能成功的执行。

各位大神帮忙看看这个问题,它困扰我好几天了。非常感谢了!!!
...全文

相关推荐

评论 4
收藏 已收藏
分享
返回顶部
OneMoreFreeMan
Ajax 52,778 成员 25,334 内容