Struts2截取字符串代碼介紹
在開發(fā)中,經(jīng)常會遇到字符串太長,需要適當截取后再顯示的問題,其實實現(xiàn)方式有幾種:
· 在后臺截取后之后再傳回頁面顯示
· 在頁面用標簽或代碼實現(xiàn)
· 在前臺使用腳本來處理,此方法不推薦
· 通過樣式控制,增加overflow:ellipse等實現(xiàn),此方法也不推薦
· 其他方式
那么如何用struts2標簽來截取字符串呢?網(wǎng)上對這一問題眾說紛紜,更有人說根本不能實現(xiàn),其實實現(xiàn)方法很簡單: 首先,你必須用<s:set >將獲取的字符串存到一變量里面,以str屬性為例 直接獲取<s:set name="str" value="list"></s:set>, 從集合中獲取時: <s:iterator value="集合" > ......................... <s:set name="str" value="str"></s:set> ......................... </s:iterator> 然后就是判斷截取,代碼:
// 當長度超過6時截取前6為顯示 <s:if test="%{#str.length()>6}"> <s:property value="str.substring(0,6)+'...'" /> </s:if> //否則全部顯示 <s:else> <s:property value="str" /> </s:else>
另外,還有更簡單的方法,不用set,直接用變量名稱來處理:
// 當長度超過6時截取前6為顯示 <s:if test="str.length()>6"> <s:property value="str.substring(0,6)+'...'" /> </s:if> //否則全部顯示 <s:else> <s:property value="str" /> </s:else>
說到這,基本上你的截取問題可以解決,但是,這個方法對于含html標簽的字符串好像有些問題,它會把html標簽也截取過來,導致頁面會因為標簽的不匹配而變形,甚至給“毀容”。 解決這個問題其實原理大家都很清楚,就是需要事先將字條串中的html標簽過濾掉,查了查struts2的標簽說明,好像是沒有這種方法,哎。于是網(wǎng)上搜羅,發(fā)現(xiàn)了僅僅一段代碼的解決方案: Struts2截取帶html標簽字符串的方法
<s:property value="#text.replaceAll('<[^>]+>','').substring(0,77)" escape="false" />
竟然可以運行,又學習到了一點點東西,text是變量。 這個標簽的作用就是把獲得的值去掉所有的html標簽,并截取前面77個字符,后面的escape='false'表示對HTML標簽不進行編碼。 到此為止該問題解決,鼓掌! 從這個用法可知道,struts2標簽上都支持java的String類的所有方法,用法起非常方便,本文就起個拋磚引玉的作用吧。
總結(jié)
以上就是本文關(guān)于Struts2截取字符串代碼介紹的全部內(nèi)容,更多內(nèi)容可以參閱:Struts和servlet不能共存問題解決方法 、 Struts2修改上傳文件大小限制方法解析 、 struts2開發(fā)流程及詳細配置等,歡迎大家瀏覽本站其他專題,感謝朋友們對本站的支持!
相關(guān)文章
springboot3.X版本集成mybatis遇到的問題及解決
在將SpringBoot3.X版本與MyBatis集成時,直接參考基于SpringBoot2.X的配置方法會導致各種報錯,尤其是無法注入mapper的bean問題,這主要是因為SpringBoot3.X版本需要搭配MyBatis3.0.3及以上版本才能正常工作,通過更新maven配置至MyBatis3.0.3版本,可以解決這一問題2024-09-09mybatis插入數(shù)據(jù)不返回主鍵id的可能原因及解決方式
這篇文章主要介紹了mybatis插入數(shù)據(jù)不返回主鍵id的可能原因及解決方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08js判斷是否是移動設(shè)備登陸網(wǎng)頁的簡單方法
這篇文章主要介紹了js判斷是否是移動設(shè)備登陸網(wǎng)頁的簡單方法,需要的朋友可以參考下2014-02-02Java數(shù)據(jù)結(jié)構(gòu)之簡單鏈表的定義與實現(xiàn)方法示例
這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)之簡單鏈表的定義與實現(xiàn)方法,簡單描述了鏈接的概念、原理,并結(jié)合實例形式分析了java定義與使用鏈表的相關(guān)步驟與操作技巧,需要的朋友可以參考下2017-10-10springboot使用jasypt加密庫實現(xiàn)數(shù)據(jù)庫加解密示例代碼
這篇文章主要給大家介紹了關(guān)于springboot使用jasypt加密庫實現(xiàn)數(shù)據(jù)庫加解密的相關(guān)資料,Jasypt是一個用于配置文件加密的Java庫,它可以用來加密和解密配置文件中的敏感信息,如數(shù)據(jù)庫密碼、API?密鑰等,需要的朋友可以參考下2024-04-04Java實現(xiàn)RedisUtils操作五大集合(增刪改查)
本文主要介紹了Java實現(xiàn)RedisUtils操作五大集合,文中通過示例代碼介紹的非常詳細,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-07-07