jstl
今天在做模块的时候列表页面突然被一个备注给撑开很宽,样式全变了。后来在网上找了些相关资料,原来jstl标签是可以截取字符串的,主要有两种方法:
一、用jstl原有的标签库中方法(fn函数)
<c:set var="testStr" value="做一个截取字符串长度的测试"
<c:choose>
<c:when test="${fn:length(testStr) > 10}">
<c:out value="${fn:substring(testStr, 0, 10)}......" />
</c:when>
<c:otherwise>
<c:out value="${testStr}" />
</c:otherwise>
</c:choose>
注:记得要引用标签库
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
二、自定义函数
jstl自带的标签有时候可能满足不了我们的需求,这时我们就要用到自定义函数。
新建一个类,定义好所需要的方法:
Java代码:
package com.uisk.util;
/**
* 定义EL自定义函数
*
*/
public class UFunction {
/**
* 获取一个字符串的长度
*
* @param str
* @return int
*/
public static int getLen(String str) {
return str.length();
}
/**
* 截取字符串
*
* @param str
* @param start
* @param end
* @return String
*/
public static String substr(String str, int start, int end) {
return str.substring(start, end);
}
/**
* 两数相除获取整数结果
*
* @param first
* @param second
* @return int
*/
public static int chufa(int first, int second) {
return first / second;
}
}
再建一个tld文件放在WEB-INF目录下面对其进行配置:
<?xml version="1.0" encoding="UTF-8"?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
<tlib-version>1.0</tlib-version>
<short-name>len</short-name>
<function>
<description>calculate string length</description><!-- 对这个EL方法的描述 -->
<name>getLen</name><!-- 调用EL方法的名称 -->
<function-class>com.cw.common.UFunction</function-class>
<function-signature>
int getLen(java.lang.String)
</function-signature>
<example>${len:getLen(str)}</example><!-- 例如 -->
</function>
<function>
<description>substring</description>
<name>substr</name>
<function-class>com.cw.common.UFunction</function-class>
<function-signature>
java.lang.String substr(java.lang.String,int,int)
</function-signature>
</function>
<function>
<description>chufa</description>
<name>chufa</name>
<function-class>com.cw.common.UFunction</function-class>
<function-signature>int chufa(int,int)</function-signature>
</function>
</taglib>
最后进行调用测试:
<%@ page language="java" pageEncoding="gbk"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="/WEB-INF/mytag.tld" prefix="myTag" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<c:set var="str" value="自定义函数,做一个截取字符串长度的测试"></c:set>
字条串"${str}"的长度是${myTag:getLen(str)}<br/>
字条串"${str}"截取前5个字符:${myTag:substr(str,0,5)}<br/>
5除以3取整数是:${myTag:chufa(5,3) }
</body>
</html>
----------***********************------------------
struts2
首先,你必须用<s:set >将获取的字符串存到一变量里面,
以str属性为例直接获取
<s:set name="str" value="parameters.str[0]"></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>
分享到:
相关推荐
(TAG标签)jstl和struts2标签截取字符串[文].pdf
常用jstl和struts标签标签的用法
Struts标签 和jstl标签Struts标签 和jstl标签
从JSTL和STRUTS的TLD文件到自定义EL函数,自己整理的关于jstl和struts标签的使用方法,以及el函数的建立等
jstl,struts2,spring标签库api,非常实用。
JSTL的各种标签文件和struts的标签文件,带strtus.jar包c-1_0.tld,c-1_0-rt.tld,c.tld,fmt-1_0.tld,fmt-1_0-rt.tld,fmt.tld,fn.tld,permittedTaglibs.tldscriptfree.tld,sql-1_0.tld,sql-1_0-rt.tld,sql....
JSP中JSTL提供的函数标签EL表达式操作字符串的方法
${fn:substring(名称,0,23) }直接截取jstl长度控制字符串长短,
jstl标签详解jstl标签详解jstl标签详解jstl标签详解jstl标签详解jstl标签详解jstl标签详解
做过大型网站前台的Web开发程序员最头疼的事情就是前台首页的布局,这其中最最头疼的就是标题字符的截取的问题,虽然有fn:substring,但表现率以及对中文的支持均不够完善,其实最终还是归结为客户要求太高了,不过...
JSTL标签JSTL标签JSTL标签JSTL标签JSTL标签JSTL标签JSTL标签JSTL标签JSTL标签JSTL标签JSTL标签JSTL标签
这个是jstl的连接字符串和jar包,在Java中使用sql server2000的时候,企业中的连接方式一般都是用jstl,虽然sql的jar包也很好用,但是用jstl的人更多,所以共享给大家!
struts的标签jstlstruts的标签jstlstruts的标签jstlstruts的标签jstl
这是一个struts2框架的处理流程的demo,里面有struts2基本的配置和模拟登录的例子,以及struts2前台后后台的数据交互方式的解释,代码中有完整的注释帮助理解struts2的基本流程,同时对jstl和struts2的标签也有一定...
JSTL jsp标准标签库 word文档
JSTL 以及自定义标签开发相关 JSTL 核心标签库标签共有13个,功能上分为4类: 1.表达式控制标签:out、set、remove、catch 2.流程控制标签:if、choose、when、otherwise 3.循环标签:forEach、forTokens 4.URL...
JSTL核心库主要标签的使用方法源代码 JSTL核心库主要标签的使用方法源代码 JSTL核心库主要标签的使用方法源代码
该包为struts1.2与jstl标签包,备份一下,为本人以及java开发人员不时之需
struts1.2、jstl、jsp三种标签教程
用于dreamweaver的标签提示和格式化.JSTL的c,fmt,x和struts2.1.8.1 已经包含格式化, 请按压缩包的注释操作. 修改了之前没有struts2的标签属性提示错误