如何强制 Weblogic 打印“null”在 jsp 文件中,对于值为 null 的变量,而不是空字符串“”?

发布于 2024-10-30 16:56:00 字数 465 浏览 6 评论 0原文

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


<%
String test = null;
%>

var test = <%=test%>;

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


var test = null;

但是,在 Weblogic 中它将是:


var test = ;

因此,使用 weblogic 时存在语法错误。

我知道使用条件解决这个问题相当容易;某行如果 test==null 打印“null”,否则打印 test。然而,我正在寻找的是某种可以改变这种行为的服务器设置。

我已经编写了代码,所以我不想搜索 JavaScript 中变量可能为 null 的每个位置。

谢谢, 格雷

Suppose I have JS code inside a jsp files, such as this:


<%
String test = null;
%>

var test = <%=test%>;

With Tomcat and Websphere the resulting JS will be:


var test = null;

However, in Weblogic it will be:


var test = ;

So with weblogic there is a syntax error.

I know this is fairly easy problem to solve using a condition; somehthing line if test==null print "null" otherwise print test. However, what I am looking for is some kind of server setting that can change this behavior.

I alreay have the code written, so I don't want to search for every place a variable going into JavaScript might be null.

Thanks,
Grae

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

挥剑断情 2024-11-06 16:56:00

我不知道你是否可以通过服务器范围的设置来控制它,但是你可以通过 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>

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

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

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

I don't know if you can control this via server-wide settings, but you can control it war-wide via a setting in the weblogic.xml configuration file:

<?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>

This needs to go in WebContent/WEB-INF directory next to your web.xml file.

Note that the default is true, so it is odd that you are not seeing nulls. Perhaps this is already set to false elsewhere. Try setting it to true in weblogic.xml as it will override any other setting.

Note that if you have Oracle Enterprise Pack for Eclipse installed for deploying to WLS from Eclipse, you will get a nice editor to help you edit weblogic.xml file. Look for this setting under JSP -> Output Options in the content outline.

亣腦蒛氧 2024-11-06 16:56:00

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

<%
String test = null;
%>

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

这应该打印 var test = null;

If weblogic tests for null in a JSP expression, you can prevent this by doing:

<%
String test = null;
%>

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

This should print var test = null;.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文