通常像标题之类的,如果后台输入过长,那么前台完整输出,必然在格式上造成多行,会显得很难看,当然如果事先对该行进行了长度和高度的控制,加上了一句“overflow:hidden”,那又另当别论了。
截取的方式自然是通过${fn:substring()}函数,那么做法如下:
1 |
< c:if test="${fn:length(article.title)>21"}>${fn:substring(article.title,0,21)}....</ c:if >
|
2 |
< c:if test = "${fn:length(article.title)<=21" }>${article.title}</ c:if >
|
这样写未尝不可,其实有一个更简单的输出方式,用到的方法就是三目运算法,代码如下:
1 |
${fn:length(article.title)>21 ? fn:substring(article.title,0,21) : article.title}${fn:length(article.title)>21 ? '...' : ''} |
代码相比之下,简洁了很多。。
${fn:length()}这个标签很强大,因为它不止可以计算字符串的长度,还可以计算从后台传过来的list对象的长度,一开始还真不知道,下午做项目时就碰到这个问题了,为此卡了一下。
${fn:substring()}这个标签,我觉得他对于中英文字符串的处理不是太好,它将汉字和英文字符都当成是1个字节,在截取的时候,有时候得到的效果往往不是我们想的,为此最好的解决方法是自己写个标签,当然如果后台输出的都是汉字,那么干脆用这个标签来截取,也很方便的。
中英文截取字符串标签的java代码如下,这是我从javaeye上拷贝过来的,在实际的项目中通过。
01 |
package com.test.mytag;
|
03 |
import java.io.IOException;
|
05 |
import javax.servlet.jsp.JspException;
|
06 |
import javax.servlet.jsp.tagext.TagSupport;
|
08 |
import org.apache.log4j.Logger;
|
13 |
* @author ryankay.xiang@gmail.com
|
16 |
public class CutStringTag extends TagSupport {
|
20 |
private static final long serialVersionUID = 1L;
|
23 |
* Logger for this class
|
25 |
private static final Logger logger = Logger.getLogger(CutStringTag. class );
|
32 |
public int doStartTag() throws JspException {
|
37 |
public int doEndTag() throws JspException {
|
38 |
String html = cutString(value, size,mark);
|
40 |
this .pageContext.getOut().write(html.toString());
|
41 |
} catch (IOException e) {
|
42 |
logger.error( "tag CutStringTag error" , e);
|
47 |
public String cutString(String str, int len,String mark) {
|
49 |
StringBuffer sb = new StringBuffer();
|
51 |
for ( int i = 0 ; i < str.length(); i++) {
|
52 |
char c = str.charAt(i);
|
56 |
counter = counter + 2 ;
|
59 |
String result=sb.toString().trim();
|
68 |
public String getValue() {
|
72 |
public void setValue(String value) {
|
76 |
public String getMark() {
|
80 |
public void setMark(String mark) {
|
84 |
public Integer getSize() {
|
88 |
public void setSize(Integer size) {
|
JS的控制如下:
-
function cutstr(str,len)
-
{
-
var str_length = 0;
-
var str_len = 0;
-
str_cut = new String();
-
str_len = str.length;
-
for(var i = 0;i<str_len;i++)
-
{
-
a = str.charAt(i);
-
str_length++;
-
if(escape(a).length > 4)
-
{
-
str_length++;
-
}
-
str_cut = str_cut.concat(a);
-
if(str_length>=len)
-
{
-
str_cut = str_cut.concat("...");
-
return str_cut;
-
}
-
}
-
}
分享到:
相关推荐
jstl和struts2标签截取字符串 从给定的文件信息中,我们可以看到,jstl和struts2标签都是用于截取字符串的。下面我们将对这两个标签进行详细的介绍和分析。 jstl标签 jstl标签是一种基于Java的标签库,它提供了...
综上所述,JSP 页面中进行字符串截取可以通过多种方式实现,包括直接使用 Java 的 `String` 类方法、EL 表达式、JSTL 标签库以及 JavaScript。根据实际需求和项目结构,选择最适合的方法进行字符串处理。在学习过程...
### 直接截取JSTL长度控制字符串长短 在Java Web开发中,JSTL(JavaServer Pages Standard Tag Library)是一种常用的标签库,它提供了一系列功能强大的标签,用于简化JSP页面的开发过程。其中,`<fn:substring>`是...
JSTL(JavaServer Pages Standard Tag Library)是一个用于简化JSP开发的标准标签库,其中的fn标签提供了一系列方便的字符串处理函数。这些函数使得在JSP页面中进行字符串操作更加简单,无需编写复杂的Java脚本。...
本文将深入探讨如何使用EL表达式来截取字符串以及获取List的长度。EL表达式通常与JSTL(JavaServer Pages Standard Tag Library)结合使用,提供了一系列的函数,如`fn:substring`和`fn:length`,来增强字符串和集合...
**JSTL 字符串处理函数详解** JavaServer Pages Standard Tag Library(JSTL)是Java Web开发中常用的一组标准标签库,它提供了一系列标签用于简化页面逻辑,包括核心标签、XML标签、SQL标签以及函数标签。在这些...
在使用EL表达式截取字符串的函数前,通常需要在JSP页面中引入JSTL的函数库,具体操作是使用标签库指令 ***" prefix="fn" %>。引入之后就可以在EL表达式中使用fn前缀调用一系列字符串操作函数。 JSTL中的fn标签库...
做过大型网站前台的Web开发程序员最头疼的事情就是前台首页的布局,这其中最最头疼的就是标题字符的截取的问题,虽然有fn:substring,但表现率以及对中文的支持均不够完善,其实最终还是归结为客户要求太高了,不过...
- **fn**: 提供一些通用的函数,如字符串操作、数组和集合处理。 - **XML**: 处理XML文档,包括解析、生成和转换。 - **JSTL Internationalization (i18n)**: 支持多语言环境。 **2. JSTL与EL(Expression Language...
在这个页面中,可能包含了使用JSTL进行字符串处理的逻辑,比如截取数据库查询结果中的某个字段以适应显示需求。通过学习和应用JSTL的字符串截取功能,开发者能够更高效地处理和展示数据,提高代码的可读性和可维护性...
JSTL(JavaServer Pages Standard Tag Library)是为简化JSP页面开发而设计的一组标准标签库。它提供了处理数据、条件逻辑等功能的强大工具,使得开发者无需编写复杂的Java代码即可实现所需的业务逻辑。其中,`<c:if...
### JSTL详解—JSP页面编写规范 #### 概述 JSTL(JSP Standard Tag Library,JSP标准标签库)是一种被广泛应用于JavaServer Pages (JSP) 页面中的标准化标签库,旨在简化JSP页面开发过程,提高代码可读性和可维护...
总结来说,JSTL的jar包和连接字符串是Java Web开发中与数据库交互的重要工具,它们使得JSP页面能更清晰、更安全地处理数据库操作。正确配置和使用这些资源,可以帮助开发者构建高效且易于维护的Web应用。
在这个"jstl字符串集合类的例子"中,我们将深入探讨如何使用JSTL处理字符串集合,如ArrayList、LinkedList或HashSet等。JSTL的核心是其迭代和条件标签,它们可以帮助我们优雅地遍历各种数据结构,包括字符串中的字符...
3. **Function标签库**:提供了一些常用函数,如字符串操作、数组操作等。这些函数可以像EL表达式中的内置函数一样使用。 4. **XML标签库**(JSTL XML或JSTL FX):处理XML文档,包括解析、操作XML节点、XSLT转换等...
JSTL 1.1版本中新增了一个功能强大的函数库——`<c:>`标签库,它允许开发者在JSP页面中执行各种常见的字符串操作、数组处理以及数学计算等功能。 本篇文章将详细介绍JSTL 1.1中的一些常用函数及其用法,并基于官方...
JSTL的fn命名空间提供了多个字符串处理函数,这些函数覆盖了大多数常见的字符串操作需求,例如判断字符串内容、替换子串、截取子串、转换大小写等。 在介绍具体的JSTL字符串处理函数之前,我们需要知道如何在JSP...
JSP中JSTL提供的函数标签EL表达式操作字符串的方法
2. **fn**: 包含了各种字符串处理和数组操作的函数。 3. **i18n**: 支持多语言环境,便于实现应用程序的国际化。 4. **sql**: 提供与数据库交互的能力,如执行SQL查询、事务管理等。 5. **core**: 包含了基本的控制...