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

Javascript String.replace(/\$ /,str)在jsp文件中很奇怪

如何解决《JavascriptString.replace(/\$/,str)在jsp文件中很奇怪》经验,为你挑选了1个好方法。

为简单起见,我有以下名为test.jsp的文件:


我把这个文件放在我的本地服务器上,然后使用firefox:http:// localhost:8080/myproj/test.jsp显示它 .它工作正常,结果警报字符串是:

 akb

但是当我把这个文件放在远程服务器上并使用相同的firefox来显示时,它的输出是:$ bk这对我来说是不正确的.

然后我将test.jsp内容更改为:


请注意,我添加两个斜杠而不是一个.在这种情况下,它适用于远程服务器,但不适用于本地服务器.

然后我将文件从test.jsp重命名为test.html,但内容与我的第一种情况相同,即:


通过使用相同的Firefox,它在两个服务器中都可以正常工作.

但是我的文件需要在jsp文件中嵌入javascript.我的文件不允许使用.html后缀.在这种情况下,我该怎么做才能编写可移植的JavaScript?

我的本地服务器使用tomcat-5.5.26; 远程服务器使用tomcat-5.0.28.Firefox版本是3.0.4.



1> Peter Štibra..:

JSP 2.0规范说:"当EL评估被禁用时,\ $将不被识别为引用,而当启用EL评估时,\ $将被识别为$的引用." (JSP.3.3.2)

是启用还是禁用EL评估取决于很多方面:

如果应用服务器支持JSP 2.0(Tomcat 5.0及更高版本)

web.xml描述符文件...如果声明(例如,通过不使用web-app_2_4.xsd模式)它使用Servet 2.3规范或更早版本,则默认情况下禁用EL.

JSP配置

Page指令isELIgnored(<%@ page isELIgnored=”true|false” %>)

(有关更多详细信息,请参阅JSP Spec 2.0,部分JSP.3.3.2)

检查EL是否启用/禁用的简单方法是在页面上使用$ {request}.如果在输出中看到"$ {request}",则EL被禁用.如果您看到不同的内容,则会启用它.

如果您还在页面上使用EL,则可能需要将\$(一个反斜杠)更改为\\$(两个反斜杠)以获得\$输出.

如果您发现本地/远程服务器之间存在差异,则与EL相关的设置可能会有所不同.最好的办法是1)使用JSP 2.0,Servlet 2.4或更高版本(启用EL),2)在机器上运行相同的Web服务器.(顺便说一句,我建议你至少将Tomcat 5.0升级到5.5).

推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有