`

Struts2 之 截取字符串

阅读更多


在开发中,经常会遇到字符串太长,需要适当截取后再显示的问题,其实实现方式有几种:

    在后台截取后之后再传回页面显示
    在页面用标签或代码实现
    在前台使用脚本来处理,此方法不推荐
    通过样式控制,增加overflow:ellipse等实现,此方法也不推荐
    其他方式

那么如何用struts2标签来截取字符串呢?网上对这一问题众说纷纭,更有人说根本不能实现,其实实现方法很简单: 首先,你必须用<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的标签说明,好像是没有这种方法,哎。于是网上搜罗,发现了仅仅一段代码的解决方案: Struts2截取带html标签字符串的方法

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

竟然可以运行,又学习到了一点点东西,text是变量。 这个标签的作用就是把获得的值去掉所有的html标签,并截取前面77个字符,后面的escape='false'表示对HTML标签不进行编码。 到此为止该问题解决,鼓掌! 从这个用法可知道,struts2标签上都支持java的String类的所有方法,用法起非常方便,本文就起个抛砖引玉的作用吧。
分享到:
评论

相关推荐

    (TAG标签)jstl和struts2标签截取字符串[文].pdf

    jstl和struts2标签截取字符串 从给定的文件信息中,我们可以看到,jstl和struts2标签都是用于截取字符串的。下面我们将对这两个标签进行详细的介绍和分析。 jstl标签 jstl标签是一种基于Java的标签库,它提供了...

    Struts2截取字符串代码介绍

    Struts2截取字符串代码介绍 Struts2截取字符串代码介绍是Java Web开发中的一种常见需求,特别是在显示长字符串时,需要截取字符串以免影响页面布局。Struts2提供了多种方式来实现字符串截取,本文将详细介绍Struts2...

    struts-api.rar_struts api_字符 截取

    截取字符串 抽取其中不要的字符 将想要得到的字符显示输出来

    Struts1之url截取_动力节点Java学院整理

    Struts1之url截取 先我们来对ActionServlet深层次进行分析。... 我们赫然发现了这样一个方法就是processPath方法,这个方法就是截取字符串的方法。这个方法的源代码如下: /** * &lt;p&gt;Identify and

    Struts2知识点小结-非常实用

    `count`定义集合大小,`separator`定义分隔符,`val`是待解析的字符串,`converter`可选,用于将字符串转换为对象,`id`定义访问集合的名称。 6. `merge`标签: `merge`标签与`append`类似,但合并元素的顺序不同...

    struts包 SqlServer JDBC链接包

    在开发过程中,我们经常使用String类的各种方法,如concat、substring、trim等,来进行字符串的拼接、截取和清理等操作。 "Sqlserver"标签明确了这个包与SQL Server数据库的关联,意味着这个压缩包可能包含了与SQL ...

    FreeMark学习笔记

    截取子串可以根据字符串的索引来进行,截取子串时如果只指定了一个索引值,则用于取得字符串中指定索引所对应的字符;如果指定两个索引值,则返回两个索引中间的字符串子串.假如有如下数据模型: Map root = new HashMap...

    我的开发笔记--java

    示例中展示了字符串操作,如`toUpperCase()`和`toLowerCase()`用于转换大小写,`charAt()`获取指定位置的字符,`indexOf()`查找字符位置,`match()`使用正则表达式匹配,`substr()`和`substring()`截取字符串,`...

    石家庄天远科技集团有限公司—Java开发笔试题

    Oracle中的字符串操作函数包括`CONCAT()`连接字符串,`ASCII()`返回对应整数的字符,`INSTR()`查找字符位置,`SUBSTR()`截取子字符串,`SYSDATE`获取当前日期,`TO_DATE()`将字符串转换为日期。 【团队意识】 团队...

    javase相关知识点

    5. JSP截取字符串:使用c:out配合fmt:formatString进行截取。 【框架知识】 1. Spring AOP:面向切面编程,用于添加日志、事务管理等横切关注点。IoC(控制反转):通过依赖注入管理对象的依赖关系。 2. Spring ...

    freemarker总结

    2,使用+运算符时,如果一边是数字,一边是字符串,就会自动将数字转换为字符串再连接,如:${3 + "5"},结果是:35 使用内建的int函数可对数值取整,如: ${ (x/2)?int } ${ 1.1?int } ${ 1.999?int } ${ -1.1?int } ...

    题目关于JAVA

    1. `substring`函数用于截取String类的子字符串,而使用`split`函数可以按指定字符(.)来分割一个字符串。 2. 在JavaScript中,通过`document.getElementById`函数可以获取具有特定id的文本框对象;`parseFloat`...

    java面试题

    84.7. 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+...

    velocity语法 velovity包

    5. **字符串操作**: Velocity支持字符串连接、截取等操作,如`$var1 + $var2`,`#set($var = $var1.substring(0, 5))`。 6. **方法调用**:可以直接在模板中调用对象的方法,如`$object.someMethod()`。 7. **...

    Java面试题及答案.pdf

    15. **截取字符串**:编写函数要考虑字符串编码,确保汉字不被分割。例如,使用getBytes()和Charset来处理。 16. **Oracle大数据量分页**:可以使用ROWNUM或ROWNUMBER()结合子查询进行分页,或者使用Oracle的分页...

    java面试题综合

    6. 字符串连接:"1"+"2"+"3"创建了三个对象,因为Java字符串是不可变的,每次连接都会生成新对象。 7. Ajax实现步骤:包括发送异步请求、处理服务器响应、DOM操作,不同浏览器兼容性考虑。 8. 创建存储过程:使用...

    java面试综合.doc

    15. **截取字符串**:编写函数时要考虑字符编码,确保汉字不被截断,可以使用Java的字符串操作方法实现。 16. **Oracle大数据量分页**:Oracle中常用ROWNUM进行分页,或者使用三层嵌套查询。还可以使用Oracle的游标...

    最新Java面试宝典pdf版

    3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...

    Java面试宝典2010版

    3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...

    Java面试笔试资料大全

    3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...

Global site tag (gtag.js) - Google Analytics