在开发中,经常会遇到字符串太长,需要适当截取后再显示的问题,其实实现方式有几种:
在后台截取后之后再传回页面显示
在页面用标签或代码实现
在前台使用脚本来处理,此方法不推荐
通过样式控制,增加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类的所有方法,用法起非常方便,本文就起个抛砖引玉的作用吧。
分享到:
相关推荐
jstl和struts2标签截取字符串 从给定的文件信息中,我们可以看到,jstl和struts2标签都是用于截取字符串的。下面我们将对这两个标签进行详细的介绍和分析。 jstl标签 jstl标签是一种基于Java的标签库,它提供了...
Struts2截取字符串代码介绍 Struts2截取字符串代码介绍是Java Web开发中的一种常见需求,特别是在显示长字符串时,需要截取字符串以免影响页面布局。Struts2提供了多种方式来实现字符串截取,本文将详细介绍Struts2...
截取字符串 抽取其中不要的字符 将想要得到的字符显示输出来
Struts1之url截取 先我们来对ActionServlet深层次进行分析。... 我们赫然发现了这样一个方法就是processPath方法,这个方法就是截取字符串的方法。这个方法的源代码如下: /** * <p>Identify and
`count`定义集合大小,`separator`定义分隔符,`val`是待解析的字符串,`converter`可选,用于将字符串转换为对象,`id`定义访问集合的名称。 6. `merge`标签: `merge`标签与`append`类似,但合并元素的顺序不同...
在开发过程中,我们经常使用String类的各种方法,如concat、substring、trim等,来进行字符串的拼接、截取和清理等操作。 "Sqlserver"标签明确了这个包与SQL Server数据库的关联,意味着这个压缩包可能包含了与SQL ...
截取子串可以根据字符串的索引来进行,截取子串时如果只指定了一个索引值,则用于取得字符串中指定索引所对应的字符;如果指定两个索引值,则返回两个索引中间的字符串子串.假如有如下数据模型: Map root = new HashMap...
示例中展示了字符串操作,如`toUpperCase()`和`toLowerCase()`用于转换大小写,`charAt()`获取指定位置的字符,`indexOf()`查找字符位置,`match()`使用正则表达式匹配,`substr()`和`substring()`截取字符串,`...
Oracle中的字符串操作函数包括`CONCAT()`连接字符串,`ASCII()`返回对应整数的字符,`INSTR()`查找字符位置,`SUBSTR()`截取子字符串,`SYSDATE`获取当前日期,`TO_DATE()`将字符串转换为日期。 【团队意识】 团队...
5. JSP截取字符串:使用c:out配合fmt:formatString进行截取。 【框架知识】 1. Spring AOP:面向切面编程,用于添加日志、事务管理等横切关注点。IoC(控制反转):通过依赖注入管理对象的依赖关系。 2. Spring ...
2,使用+运算符时,如果一边是数字,一边是字符串,就会自动将数字转换为字符串再连接,如:${3 + "5"},结果是:35 使用内建的int函数可对数值取整,如: ${ (x/2)?int } ${ 1.1?int } ${ 1.999?int } ${ -1.1?int } ...
1. `substring`函数用于截取String类的子字符串,而使用`split`函数可以按指定字符(.)来分割一个字符串。 2. 在JavaScript中,通过`document.getElementById`函数可以获取具有特定id的文本框对象;`parseFloat`...
84.7. 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+...
5. **字符串操作**: Velocity支持字符串连接、截取等操作,如`$var1 + $var2`,`#set($var = $var1.substring(0, 5))`。 6. **方法调用**:可以直接在模板中调用对象的方法,如`$object.someMethod()`。 7. **...
15. **截取字符串**:编写函数要考虑字符串编码,确保汉字不被分割。例如,使用getBytes()和Charset来处理。 16. **Oracle大数据量分页**:可以使用ROWNUM或ROWNUMBER()结合子查询进行分页,或者使用Oracle的分页...
6. 字符串连接:"1"+"2"+"3"创建了三个对象,因为Java字符串是不可变的,每次连接都会生成新对象。 7. Ajax实现步骤:包括发送异步请求、处理服务器响应、DOM操作,不同浏览器兼容性考虑。 8. 创建存储过程:使用...
15. **截取字符串**:编写函数时要考虑字符编码,确保汉字不被截断,可以使用Java的字符串操作方法实现。 16. **Oracle大数据量分页**:Oracle中常用ROWNUM进行分页,或者使用三层嵌套查询。还可以使用Oracle的游标...
3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...
3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...
3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...