2017-02-02 78 views
0

我有一個聯繫表單,它在提交時將所有表單的數據發佈到電子郵件操作中,然後以純文本形式呈現確認電子郵件。數據即將通過,但一些行忽略了它們各自的換行符。JSP純文本電子郵件不呈現換行符

JSP:

<%@ page language="java" contentType="text/plain;" %><%@ page import="com.shared.Configuration" %><%@ taglib uri="/WEB-INF/jstl-core.tld" prefix="c" %>Contact Us Form: ${issue} 

Name: ${name} 
Email Address: ${emailAddress} 
<c:if test="${not empty accessCode}">Access Code: ${accessCode}</c:if> 
<c:if test="${not empty itemId}">Inventory Number: ${itemId}</c:if> 
<c:if test="${not empty title}">Title: ${title}</c:if> 
<c:if test="${not empty device_active}">User Device: ${device}</c:if> 
<c:if test="${not empty os_active}">User Operating System/Version: ${operatingSystem}</c:if> 
<c:if test="${not empty browser_active}">User Web Browser/Version: ${webBrowser}</c:if> 
<c:if test="${hasError eq 'Y' or hasError eq 'N'}"><c:choose><c:when test="${hasError eq 'Y'}">Error Message: ${errorMessage}</c:when><c:otherwise>No Error message was present</c:otherwise></c:choose></c:if> 
<c:if test="${not empty otherDetails}">Other Details: ${otherDetails}</c:if> 
<c:if test="${not empty problemDetails}">Problem Details: ${problemDetails}</c:if>** 

正如你所看到的,有很多IF條件句,基本上,這些都是在地方作爲節省空間,如果用戶沒有在任何這些信息輸入字段,那麼不要把它們放在電子郵件中。

由於它位於Mac OS X Mail客戶端,因此所有基於Web的客戶端都可以呈現電子郵件。展望是不是在玩好的唯一的一個,並呈現出它的電子郵件這樣:

Outlook電子郵件結果:

Contact Us Form: Can't access the extra PlayBack+ features 

Name: me 
Email Address: [email protected] 
Access Code: aqwsedrftgyhuj87 
Inventory Number: 12345678 
Title:Title: this track 
User Device: Desktop 
User Operating System/Version: Mac OS 10.9.5 User Web Browser/Version: Chrome 55 Error Message: 
Other Details:no other details Problem Details: 

線從用戶OS,用戶瀏覽器,錯誤信息和問題爆發細節不到位。辦公室裏沒人有解決辦法。那裏的人都知道發生了什麼事?

回答

0

我會尋找問題的三個地方:

1)

這可能是與在JSP新生產線的非打印字符的問題。

<c:if ...></c:if>\r\n 
<c:if ...></c:if>\n 
<c:if ...></c:if>\r 

新線路碼在不同的操作系統不同:
的Windows:\r\n
Unix的:\n
更多信息:wikipedia

看的不可見的字符,在編輯器中。例如在Notepad ++中點擊¶。
統一它,如果有任何區別。

2)

檢查如果EL變量含有換行符它們的值。
這可能是由於糟糕的解析或使用未正確清理/修剪的字符串造成的。

EL如何評估${operatingSystem}Mac OS 10.9.5\r
是否有任何新行字符? 如果是。在設置變量之前修剪字符串。

3)

在結合前2點的可能性存在也有可能是trimDirectiveWhitespaces干涉。

檢查部署描述符web。XML包含塊類同:

<%@ page trimDirectiveWhitespaces="false"%>

<jsp-config> 
    <jsp-property-group> 
    <url-pattern>*.jsp</url-pattern> 
    <trim-directive-whitespaces>true</trim-directive-whitespaces> 
    </jsp-property-group> 
</jsp-config> 

如果trimDirectiveWhitespaces設置爲true,這是有道理的,很多情況下,你可以通過向JSP行停用此特定情況下,

請看這裏的一些例子: Remove Spacing between JSP variables

相關問題