velocity中字串拼接空格處理

2021-08-14 08:37:12 字數 1887 閱讀 2514

velocity中字串拼接空格處理

實踐:**:

京東支付##

#if($index > 1) 、

#end

#end

#if($textdisplay.indexof("wxsys")>=0)

#if($index > 2) 、

#end

#end

#if($textdisplay.indexof("zfb")>=0)

支付寶##

#if($index > 3) 、

#end

#end

掃一掃,向我付款

掃一掃,向我付款

拼接字串中行首不能縮排

實際效果:

空格效果:

velocity的坑——字串首尾的空格那些事

部落格分類:

velocity

最近的專案採用velocity 1.7作為模板引擎,幾天用下來,感覺還是挺爽的。不過今天發現乙個坑:macro裡面如果有多行的話,輸出的字串前後都被加上了換行和空格。直接上**:

js**

#macro(getcontextpath)

#if($root.lastindexof('/') == 0)

#set($root = $root + '/')

#end

$root  

#end

呼叫:js**

aa#aa  

輸出:

js**

aa /web/ aa  

中間確實多了空格,我的目的是所有的url字首都加上這個context路徑,比如:

html**

href

="#menu/list"

>

***最終我看到的結果會是這樣:

html**

href

="#                   /web/ menu/list"

>

***很明顯這不符合我的要求。

網上搜了一把,終於在velocity的wiki搜到了解決方案,

第一種方案,把macro裡面的所有語句寫成一行(不要換行),在行的末尾加上

##

這種方案缺點很明顯,程式完全不具備可讀性。

第二種方案(

會英文的,上面的鏈結開啟,拉到底部,那段就是解決方案

),直接上**:

js**

#macro(getcontextpath)

#if($root.lastindexof('/') == 0)

#set($root = $root + '/')

#end

$root##  

#end

解釋下:

行首不能縮排

,否則還是有空格;(這是去除字串前面的空格和換行)

輸出資料的行(上面$root是輸出資料的)末尾需要加上

##

(這是去除字串尾部的空格)

ps:上面的**是獲取servlet的context路徑。

拼接字串

border 1 class box 標籤名稱th 是否顯示th 標籤順序th tr thead 首頁td class check 是option 否option select td class number 1option 2option 3option 4option 5option 6opti...

字串拼接

給定兩個字串s1和s2,合併成乙個新的字串s。合併規則為,s1的第乙個字元為s的第乙個字元,將s2的最後乙個字元作為s的第二個字元 將s1的第二個字元作為s的第三個字元,將s2的倒數第二個字元作為s的第四個字元,以此類推。包含多組測試資料,每組測試資料報含兩行,代表長度相等的兩個字串s1和s2 僅由...

字串拼接

本文總結記錄linux c中有關字串的拼接方法,strncat 和 snprintf 函式 一 strncat 實現字串拼接 char strncat char dest,const char src,size t n 宣告,n 為 src 字串長度 char strncat char dest,c...