JFinal渲染问题

我现在有个困惑 是这样的 我在后台 编写了

//初始化服务器信息

contro.setAttr(ConstantWebContext.request_server_infos, ServerInfo.dao.getAllServerInfos(user.getRoleId()));



在前台html页面中获取server_infos

<script type="text/javascript">

serverMap = common_common.getMap('${server_infos}'); // 用户所拥有的服务器

</script>

<script type="text/javascript" src="${cxt!}/js/modelform/serverinfo/server-set.js"></script>

这样是没有问题的,但是我把页面单独

<script type="text/javascript">

serverMap = common_common.getMap('${server_infos}'); // 用户所拥有的服务器

</script>去掉了 放在server-set.js页面中写就是获取不到${server_infos} 这是为什么呢


评论区

JFinal

2016-09-06 16:07

serverMap = common_common.getMap('${server_infos}'); 这种用法没有见到过,用的是啥模板?

冬眠的蛇

2016-09-06 21:00

你把${xxx}放到单独的js文件中,会被当成另一个文件的文本处理。后台渲染给前端的时候,应该只认被渲染的那个文件,被这个文件引用的文件是不会被渲染的

云海

2016-10-18 08:54

@JFinal 你好用的是beetl模板

JFinal

2016-10-18 11:15

@云海 在页面文件中可以获取到变量,是因为在后端使用 render(xxx.html) 对该页面进行了渲染,而你的 server-set.js 这个文件是个独立的资源文件, render(xxx.html) 时并不会去处理你的 server-set.js文件

js css jpg 等等这类资源是在 html 中使用链接指向的方式指定的,浏览器在发送第一次请求以后获取到的仅仅只是 html 文件内容而已,通过解析文件内容,得到 js css jpg 这些资源的 url 链接以后,浏览器会再次发起 n 个请求去获取这些资源,而这些请求通常是 tomcat jetty nginx 接管的,你的程序,尤其是你的 render(xxx.html) 对此全然不知

热门反馈

扫码入社