3

假设我在一个 jsp 文件中有 JS 代码,例如:


<%
String test = null;
%>

var test = <%=test%>;

使用 Tomcat 和 Websphere 生成的 JS 将是:


var test = null;

但是,在 Weblogic 中它将是:


var test = ;

所以使用 weblogic 会出现语法错误。

我知道使用条件来解决这个问题相当容易;somehthing line if test==null print "null" 否则打印 test. 但是,我正在寻找的是某种可以改变这种行为的服务器设置。

我已经编写了代码,所以我不想搜索进入 JavaScript 的变量可能为空的每个地方。

谢谢,格雷

4

2 回答 2

2

我不知道你是否可以通过服务器范围的设置来控制它,但你可以通过 weblogic.xml 配置文件中的设置来控制它:

<?xml version="1.0" encoding="UTF-8"?>
<wls:weblogic-web-app xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd">
    ...
    <wls:jsp-descriptor>
        <wls:print-nulls>true</wls:print-nulls>
    </wls:jsp-descriptor>
</wls:weblogic-web-app>

这需要进入 web.xml 文件旁边的 WebContent/WEB-INF 目录。

请注意,默认值为 true,因此您没有看到空值很奇怪。也许这已经在其他地方设置为 false 。尝试在 weblogic.xml 中将其设置为 true,因为它将覆盖任何其他设置。

请注意,如果您安装了 Oracle Enterprise Pack for Eclipse 以便从 Eclipse 部署到 WLS,您将获得一个很好的编辑器来帮助您编辑 weblogic.xml 文件。在内容大纲的 JSP -> 输出选项下查找此设置。

于 2011-04-05T16:33:16.097 回答
0

如果 weblogic 在 JSP 表达式中测试 null,您可以通过执行以下操作来防止这种情况:

<%
String test = null;
%>

var test = <%= String.valueOf(test) %>;

这应该打印var test = null;

于 2011-04-05T16:09:36.250 回答