溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

利用Struts2怎么對(duì)字符串進(jìn)行截取

發(fā)布時(shí)間:2020-12-07 16:33:16 來(lái)源:億速云 閱讀:194 作者:Leah 欄目:編程語(yǔ)言

這篇文章給大家介紹利用Struts2怎么對(duì)字符串進(jìn)行截取,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

在開發(fā)中,經(jīng)常會(huì)遇到字符串太長(zhǎng),需要適當(dāng)截取后再顯示的問題,其實(shí)實(shí)現(xiàn)方式有幾種:

· 在后臺(tái)截取后之后再傳回頁(yè)面顯示

· 在頁(yè)面用標(biāo)簽或代碼實(shí)現(xiàn)

· 在前臺(tái)使用腳本來(lái)處理,此方法不推薦

· 通過(guò)樣式控制,增加overflow:ellipse等實(shí)現(xiàn),此方法也不推薦

· 其他方式

那么如何用struts2標(biāo)簽來(lái)截取字符串呢?網(wǎng)上對(duì)這一問題眾說(shuō)紛紜,更有人說(shuō)根本不能實(shí)現(xiàn),其實(shí)實(shí)現(xiàn)方法很簡(jiǎn)單: 首先,你必須用<s:set >將獲取的字符串存到一變量里面,以str屬性為例 直接獲取<s:set name="str" value="list"></s:set>, 從集合中獲取時(shí):     <s:iterator value="集合" >          .........................          <s:set name="str" value="str"></s:set>         .........................     </s:iterator> 然后就是判斷截取,代碼:

// 當(dāng)長(zhǎng)度超過(guò)6時(shí)截取前6為顯示  <s:if test="%{#str.length()>6}">    <s:property value="str.substring(0,6)+'...'" />  </s:if>  //否則全部顯示  <s:else>     <s:property value="str" />  </s:else> 

另外,還有更簡(jiǎn)單的方法,不用set,直接用變量名稱來(lái)處理:

// 當(dāng)長(zhǎng)度超過(guò)6時(shí)截取前6為顯示  <s:if test="str.length()>6">    <s:property value="str.substring(0,6)+'...'" />  </s:if>  //否則全部顯示  <s:else>     <s:property value="str" />  </s:else> 

說(shuō)到這,基本上你的截取問題可以解決,但是,這個(gè)方法對(duì)于含html標(biāo)簽的字符串好像有些問題,它會(huì)把html標(biāo)簽也截取過(guò)來(lái),導(dǎo)致頁(yè)面會(huì)因?yàn)闃?biāo)簽的不匹配而變形,甚至給“毀容”。 解決這個(gè)問題其實(shí)原理大家都很清楚,就是需要事先將字條串中的html標(biāo)簽過(guò)濾掉,查了查struts2的標(biāo)簽說(shuō)明,好像是沒有這種方法,哎。于是網(wǎng)上搜羅,發(fā)現(xiàn)了僅僅一段代碼的解決方案: Struts2截取帶html標(biāo)簽字符串的方法

<s:property value="#text.replaceAll('<[^>]+>','').substring(0,77)" escape="false" /> 

竟然可以運(yùn)行,又學(xué)習(xí)到了一點(diǎn)點(diǎn)東西,text是變量。 這個(gè)標(biāo)簽的作用就是把獲得的值去掉所有的html標(biāo)簽,并截取前面77個(gè)字符,后面的escape='false'表示對(duì)HTML標(biāo)簽不進(jìn)行編碼。 到此為止該問題解決,鼓掌! 從這個(gè)用法可知道,struts2標(biāo)簽上都支持java的String類的所有方法,用法起非常方便,本文就起個(gè)拋磚引玉的作用吧。

關(guān)于利用Struts2怎么對(duì)字符串進(jìn)行截取就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI