document.write("<script language=javascript src='js/baseInfoData_${sessionScope['org.apache.struts.action.LOCALE']}.js'></script>");
这是我在一个jq插件源文件里面导入的js文件,然后报错:net::ERR_ABORTED 404 (Not Found)
如果把${sessionScope['org.apache.struts.action.LOCALE']}这段,换成具体的文件名就没问题,但是请问如果涉及拼接${sessionScope['org.apache.struts.action.LOCALE']},该怎么写呢?
${sessionScope['org.apache.struts.action.LOCALE']} 这个是服务器端标记吧
要不放到js文件中是不会解析 ${sessionScope['org.apache.struts.action.LOCALE']} 这种服务器端代码的,以源代码作为文件路径当然会出错
应该改成下面这种模式,注意jspath变量要放到加载的js前面定义,要不会出错
<script>
var jspath = "${sessionScope['org.apache.struts.action.LOCALE']}";//服务器端代码需要放到动态页面里面解析后赋值给js变量
</script>
<script src="xxx.js"></script>
然后xxx.js改成这样
document.write("<script language=javascript src='js/baseInfoData_" + jspath+".js'></script>");
document.write(`<script language=javascript src='js/baseInfoData_${sessionScope['org.apache.struts.action.LOCALE']}.js'></script>`);