当前位置:  开发笔记 > 编程语言 > 正文

在JavaScript中使用JSP代码

如何解决《在JavaScript中使用JSP代码》经验,为你挑选了3个好方法。

我想在JavaScript中使用JSTL的fmt标记来本地化我的警报消息.我的JavaScript文件是一个独立的文件,当我在js中包含fmt标签时,文件浏览器会出现JavaScript错误.是否可以使用web.xml配置将.js文件视为.jsp文件?任何人都可以建议我该怎么做?



1> bobince..:

是否可以使用web.xml配置将.js文件视为.jsp文件?

是:


    scriptjsp
    /script.jsp 


    scriptjsp
    /script.js

但是,这样做没有实际的优势,因为JavaScript文件不必具有以".js"结尾的URL.确定文件是否是JavaScript文件的原因是它所服务的MIME媒体类型.您可以使用以下命令从JSP设置:

<%@ page contentType="text/javascript" %>

在顶部.然后你可以直接链接到:


(旁白:在当前的浏览器中,与

(更改'en'以匹配您想要的任何语言),并在该文件中定义如下查找:

var msg= {
    messageName: 'Message in English',
    ...
};

然后msg.messageName在脚本中查找每个localisable字符串.



2> belugabob..:

如果您的javascript与JSP页面的其余部分"内联",则只需使用Kees de Kooter建议的技术.

如果您的javascript需要位于外部文件中(例如,对于跨页面共享),则只需将其放在自己的JSP文件中即可.

<%@page contentType="text/javascript" %>
"
"
var someMessage = "${someMessage}"
var anotherMessage = "${anotherMessage}"/>"

像这样包括它......

        

然后,您可以在包含JSP的文件中或从'yourScript.jsp之后包含的任何javascript文件中引用'someMessage'和'anotherMessage'.

请注意,使用contentType属性 - "text/javascript"可以防止JSP解析器抱怨输出格式不正确的XML - 并且tage引用了JSP文件.

这种技术与@Magner建议的技术相结合,可以为您提供合理的解决方案.

编辑:更改示例使用'text/javascript'插入'text/plain' - 感谢@bobince让我意识到这个错误(即使'text/plain'有效,使用'text/javascript'更正确).此外,如果需要国际化的字符串数量很少,和/或您可以证明在多个地方拥有"资源" - 一个用于服务器端,另一个用于客户端 - @ bobince的技术使用动态包含是一个很好的.



3> BeWarned..:

我建议你编写一个servlet来生成一个包含所需本地化信息的数组或javascript对象.您可以使用可由客户端和服务器端共享的Java资源包,然后您不必混合使用JSP代码和Javascript代码,并且浏览器将缓存servlet响应.

创建一个servlet,将其映射到路径,让它从请求参数中读取区域设置,然后生成Javascript代码.

使用一行, 然后加载脚本


这是一个很好的解决方案,应该排名更高.
推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有