`
caiying0504
  • 浏览: 341497 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jstl和struts2标签截取字符串

阅读更多
jstl
jstl以前在jsp页面截取字符串时都是用Java表达式,感觉在jsp页面用多了Java表达式不是很好(那时主要是不知道jstl标签怎么去截取字符串,所以就只能用Java表达式了)。今天在网上找了些相关资料,原来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和struts2标签截取字符串 从给定的文件信息中,我们可以看到,jstl和struts2标签都是用于截取字符串的。下面我们将对这两个标签进行详细的介绍和分析。 jstl标签 jstl标签是一种基于Java的标签库,它提供了...

    jsp页面截取字符串

    在 JSTL `fn` 标签库中,`substring` 标签可用于截取字符串。 首先,需要在 JSP 页面中导入 JSTL 库: ```jsp &lt;%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %&gt; ...

    jstl和struts标签

    ### JSTL与Struts标签库详解 ...通过使用JSTL和Struts标签,开发者不仅能够提高代码的可读性和可维护性,还能大大减少页面上的脚本代码量,使页面更加整洁和专业。这对于构建高质量的企业级Web应用来说是非常重要的。

    jstl,struts2,spring标签库api

    在Java Web开发中,JSTL(JavaServer Pages Standard Tag Library)、Struts2和Spring都是极为重要的组件,它们各自提供了强大的功能,同时也通过标签库API增强了开发者的工作效率。这三个框架的标签库API使得代码...

    Struts标签 和jstl标签

    同时,JSTL的`&lt;fmt&gt;`库可用于日期和数字格式化,`&lt;fn&gt;`库则提供了一些实用的字符串和集合操作函数。 总的来说,Struts标签和JSTL标签都是提高Java Web开发效率的重要工具。通过熟练掌握并合理使用这两者,开发者...

    JSTL的各种标签文件和struts的标签文件,带strtus.jar包

    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....

    直接截取jstl长度控制字符串长短

    该标签通过指定起始位置和结束位置来截取字符串,从而实现对字符串长度的控制。 #### ${fn:substring(名称,0,23)} 此表达式表示使用JSTL中的`fn:substring`函数来截取名为“名称”的字符串的前23个字符。具体来说...

    JSP中JSTL提供的函数标签EL表达式操作字符串的方法

    JSP中JSTL提供的函数标签EL表达式操作字符串的方法

    用于dreamweaver的标签提示和格式化.JSTL的c,fmt,x和struts2

    标题提到的"用于dreamweaver的标签提示和格式化.JSTL的c,fmt,x和struts2",意味着这个压缩包是为了增强Dreamweaver对JSTL以及Struts2框架的支持。Struts2是基于MVC(模型-视图-控制器)架构的开源Java Web应用框架,...

    jstl的jar包和连接字符串

    标题"jstl的jar包和连接字符串"所涉及的关键点是JSTL库的使用,特别是针对SQL Server 2000的数据库连接。`jstl.jar`文件是JSTL库的主要组成部分,包含了许多预定义的标签类,使得开发者可以通过简单的标签语法来实现...

    从JSTL和STRUTS的TLD文件到自定义EL函数

    JSTL(JavaServer Pages Standard Tag Library)和Struts框架所提供的标签库就是这样的例子。为了能在JSP页面中使用这些标签库,我们需要通过`&lt;%@ taglib %&gt;`指令来引入它们。 #### 引入JSTL标签库 在JSP页面中...

    Struts2标签使用及API文档

    `struts2标签用法.doc`和`标签详解`文件可能包含更深入的标签用法和实例,例如如何使用`s:form`创建表单,如何利用`s:action`执行Action,以及如何使用`s:debug`标签进行调试等。 5. **Struts2标签的高级用法** -...

    struts2、JSTL、Spring、JS、JSP标签大全

    除了标准的JSP标签外,还有自定义标签(如Struts2的标签)和JSTL标签。自定义标签可以封装复杂的业务逻辑,使得JSP页面更加清晰,遵循MVC原则,提高代码的可读性和可维护性。 以上知识点涵盖了Web开发的主要方面,...

    struts2 标签 tags API 参考文档

    Struts2的标签库是基于JSP标准标签库(JSTL)扩展的,提供了一系列用于简化视图层开发的标签。这些标签帮助开发者避免直接编写Java脚本和HTML混合代码,提高代码的可读性和可维护性。 2. **Action标签** Action...

    自定义EL函数解决JSTL标签不足之处——按字节长度截取字符串

    做过大型网站前台的Web开发程序员最头疼的事情就是前台首页的布局,这其中最最头疼的就是标题字符的截取的问题,虽然有fn:substring,但表现率以及对中文的支持均不够完善,其实最终还是归结为客户要求太高了,不过...

    struts2-tags-API,struts2标签api

    Struts2标签库是基于JSP标准标签库(JSTL)的扩展,它提供了一系列预定义的标签,用于处理视图层的展示逻辑,如表单处理、数据验证、国际化等。这些标签通常比纯HTML和脚本更易于维护,且与Action类解耦,提高了代码...

    struts2标签详解与实例

    Struts2标签库是基于JSP标准标签库(JSTL)的扩展,它包含了一系列用于构建动态Web应用的标签。这些标签分为两类:核心标签和主题标签。核心标签主要处理表单、控制流程和显示数据,而主题标签则负责渲染视图,提供...

    struts2标签用法详解

    Struts2标签库是基于JavaServer Pages (JSP) 标准标签库(JSTL)的扩展,它包含了一系列与Action、结果、表单、国际化等相关的标签。这些标签使得开发者可以将业务逻辑与展示逻辑分离,从而更专注于页面的呈现。 二...

    Struts标签库jstl.jar standard.jar

    Struts标签库与JSTL(JavaServer Pages Standard Tag Library)是Java Web开发中的两个重要组件,...在项目中正确导入和使用`jstl.jar`和`standard.jar`,并结合Struts标签库,将使Web应用程序的开发变得更加得心应手。

    Struts标签库 Struts 标签库

    Struts2框架中的标签库是基于JSP标准标签库(JSTL)的扩展,它提供了一系列与动作、结果、表单和国际化相关的标签。这些标签能够帮助开发者在页面上轻松地展现数据、处理表单提交、实现动态内容生成等。 2. **主要...

Global site tag (gtag.js) - Google Analytics