2011-04-05 58 views
3

假設我有內部的jsp文件JS代碼,比如這個:如何強制Weblogic在jsp文件中打印「null」,而不是空字符串「」,對於值爲null的變量?

 

<% 
String test = null; 
%> 

var test = <%=test%>; 
 

對於Tomcat和Websphere所產生的JS是:

 

var test = null; 
 

然而,在Weblogic的將是:

 

var test = ; 
 

因此,使用weblogic時會出現語法錯誤。

我知道這是使用條件解決相當容易的問題;某些行如果test == null打印「null」,否則打印測試。但是,我正在尋找的是某種可以改變這種行爲的服務器設置。

如果我寫了代碼,所以我不想搜索每一個進入JavaScript的變量都可能爲空的地方。

感謝, GRAE

+0

您使用的是WLS的確切版本... 10.3.1,10.3.2等 – 2011-04-05 16:28:39

回答

0

如果WebLogic試驗在JSP表達式零,就可以防止這種做:

<% 
String test = null; 
%> 

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

這應該打印var test = null;

+1

我正在尋找weblogic設置。我知道你可以使用各種Java技巧來解決它。我只是不要在代碼中搜索每個地方,以找到我<%=...%>可能在其中有空的每個地方。 – 2011-04-05 16:47:37

+0

它似乎有很多代碼更改,只是爲了支持服務器。 – 2011-04-05 16:47:59

+0

這個解決方案的工作原理,我永遠無法得到任何其他的東西的工作。 – 2011-05-04 22:13:01

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,所以奇怪的是您沒有看到空值。也許這在別處已經被設定爲錯誤。嘗試在weblogic.xml中將其設置爲true,因爲它將覆蓋任何其他設置。

請注意,如果您安裝了用於從Eclipse部署到WLS的Oracle Enterprise Pack for Eclipse,您將獲得一個很好的編輯器來幫助您編輯weblogic.xml文件。在內容大綱的JSP - >輸出選項下找到這個設置。

相關問題