word導出時freeMarker轉義字符的處理

根據ftl模板導出word時,如果填充的字符含有特殊字符< 、>、&,那麼導出的word是無法打開的。因爲這些字符在導出word時被認爲是ftl的標籤,正常導出後再打開是會報錯。如果以xml的方式打開,會發現所有內容都是完整的,唯獨上面三個特殊字符出問題。

爲了解決這個問題,首先我新建一個word,在裏面填上上面三個特殊字符,然後保存爲xml。在該xml中找到對應的字符,發現已經轉義了  &lt; 對應<      &gt;對應>    &amp;對應&

        可以看出,如果填充的是轉義後的字符是可以正常打開的。所以要在填充字符之前檢測私服是否含有上述特殊字符,如果有就需要轉義。代碼如下:


	/**
		 * 處理轉義字符
		 * @param str
		 * @return
		 */
		private String transform(String str){
				
			if(str.contains("<")||str.contains(">")||str.contains("&")){
				  str=str.replaceAll("&", "&amp;");
				  str=str.replaceAll("<", "&lt;");
				  str=str.replaceAll(">", "&gt;");
			}
		
			return str;
		}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章