Struts2 截字符串长度 去掉字符串空格
  R0Sx2erBMixA 2023年11月02日 35 0


Struts2 截字符串长度 去掉字符串空格

截字符串控制文本长度:<s:property value="title.length()>15?title.substring(0,15)+'...':title"/>

去掉字符串空格:<s:property value='title.trim()'/> 这种写法最简单。。

 

截字符串控制文本长度的自定义标签:

 

<%@ taglib uri="/WEB-INF/StringOmit.tld" prefix="my" %>
 
<my:StringOmit maxLength="40" suffix="..."><s:property value="content"/></my:StringOmit>


<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" 
"http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib>
	<tlibversion>1.0</tlibversion>
	<jspversion>1.1</jspversion>
	<shortname>mytag</shortname>
	<tag>
		<name>StringOmit</name>
		<tagclass>com.gwideal.jxwpgsh.util.StringOmitTag</tagclass>
		<bodycontent>jsp</bodycontent>
		<attribute>
			<name>maxLength</name>   
	        <required>true</required>
	        <rtexprvalue>true</rtexprvalue>
		</attribute>
		<attribute>   
	        <name>suffix</name>   
	        <required>false</required>   
	        <rtexprvalue>true</rtexprvalue>   
	    </attribute>   
	    <attribute>   
	        <name>value</name>   
	        <required>false</required>   
	        <rtexprvalue>true</rtexprvalue>   
	    </attribute>  
	</tag>
</taglib>

 

package com.gwideal.jxwpgsh.util;

import java.util.ArrayList;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.BodyTagSupport;

@SuppressWarnings("serial")
public class StringOmitTag extends BodyTagSupport {

	private int maxLength;
	private String value;
	private String suffix;
	public int getMaxLength() {
		return maxLength;
	}
	public void setMaxLength(int maxLength) {
		this.maxLength = maxLength;
	}
	public String getSuffix() {
		return suffix;
	}
	public void setSuffix(String suffix) {
		this.suffix = suffix;
	}
	public String getValue() {
		return value;
	}
	public void setValue(String value) {
		this.value = value;
	}
	
	@Override  
    public int doAfterBody() throws JspException {   
        value=bodyContent.getString(); 
        return SKIP_BODY;   
    }
	
	public int doEndTag ()throws JspException {
		JspWriter out = pageContext.getOut();
		if(null==value){
			value = "";
		}
		try {
			/*old:按照长度截取
			if(value.length()>maxLength){
				value=value.substring(0, maxLength);
				if(suffix!=null || !suffix.equals("")){
					value+=suffix;
				}
			}
			*/
			int vLen = value.getBytes().length;
			if(vLen>maxLength){
				value=getSubString(value, (maxLength));
				if(suffix!=null || !suffix.equals("")){
					value+=suffix;
				}
			}
			out.print(value);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return EVAL_PAGE;  
	}
	
    public static String getSubString(String oriStr, int subStrLen) {
    	String value="";
        if (oriStr==null || subStrLen <= 0) {
           // return new String[0];//返回数组
        	 return new String();
        }
        ArrayList list = new ArrayList();
        byte[] subStrBytes = oriStr.getBytes();
        int subStrIndex = 0;
        int index = 0;
        while (subStrIndex < subStrBytes.length) {
            int len = subStrLen;
            if (subStrIndex + len > subStrBytes.length) {
                len = subStrBytes.length - subStrIndex;
            }
            String subStr = new String(subStrBytes, subStrIndex, len);
            if (subStr.charAt(subStr.length() - 1) != oriStr.charAt(index + subStr.length() - 1)) {
                subStr = subStr.substring(0, subStr.length() - 1);
                len = subStr.getBytes().length;
            }
            if(len <= 0){
                //return new String[0];//返回数组
            	 return new String();
            }
            subStrIndex += len;
            index += subStr.length();
            list.add(subStr);
            value = subStr;
            break;
        }
        //String[] subStrs = (String[]) list.toArray(new String[list.size()]);
        //return subStrs;
        return value;
    }

}

 

 

 

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  cG0i4onRy7gH   2023年11月02日   61   0   0 控件Web数据
  dmee7YA5I8o8   2023年11月02日   92   0   0 HTMLxmlJavaScript
  T5djtHPYewvW   2023年11月02日   101   0   0 Javaxml3c
  LisBlKScaTwd   2023年11月02日   45   0   0 HTML作用域el表达式JSP
R0Sx2erBMixA
最新推荐 更多