Struts2标签简单使用——截取
来源:互联网 发布:网络模块价格 编辑:程序博客网 时间:2024/05/14 19:14
背景:
显示全部新闻时,为方便大家获得更多资讯,不需要显示整篇新闻内容,截取部分即可。
1.截取纯文本文字前100文字字符:
<s:if test="#pc.aim.length()>100"><p><s:property value="#pc.aim.substring(0,100)" />···</p></s:if><s:else><p><s:property value="#pc.aim" /></p></s:else>
2.截取含HTML标签中前100文字字符:
添加一个工具类,用来对HTML标签进行处理
- package com.tools;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- @SuppressWarnings({"unchecked" })
- public class CutHtml {
- static String htmlMatch = "";
- // 通过递归删除html文件中的配对的html标签
- public static String removeMatchHtmlTag() {
- // String html="<p></p><table><tr><td></td><td></td></tr></table>";
- Pattern p = Pattern.compile("<([a-zA-Z]+)[^<>]*>(.*?)</\\1>");
- Matcher m = p.matcher(htmlMatch);
- if (m.find()) {
- // System.out.println(htmlMatch);
- htmlMatch = htmlMatch.replaceAll("<([a-zA-Z]+)[^<>]*>(.*?)</\\1>","$2");
- removeMatchHtmlTag();
- }
- return htmlMatch;
- }
- public static String subStringHTML(String param, int length, String endWith) {
- if(length<1) {System.out.println("length must >0");return null;}
- if(param.length()<length){return param;}
- StringBuffer result = new StringBuffer();
- StringBuffer str = new StringBuffer();
- int n = 0;
- char temp;
- boolean isCode = false; // 是不是HTML代码
- boolean isHTML = false; // 是不是HTML特殊字符,如
- for (int i = 0; i < param.length(); i++) {
- temp = param.charAt(i);
- if (temp == ’<’) {
- isCode = true;
- }
- else if (temp == ’&’) {
- isHTML = true;
- }
- else if (temp == ’>’ && isCode) {
- n = n - 1;
- isCode = false;
- }
- else if (temp == ’;’ && isHTML) {
- isHTML = false;
- }
- if (!isCode && !isHTML) {
- n = n + 1;
- // UNICODE码字符占两个字节
- if ((temp + "").getBytes().length > 1) {
- n = n + 1;
- }
- str.append(temp);
- }
- result.append(temp);
- if (n >= length) {
- break;
- }
- }
- result.append(endWith);
- // 取出截取字符串中的HTML标记
- String temp_result = result.toString().replaceAll("(>)[^<>]*(<?)","$1$2");
- // 去掉不需要结束标记的HTML标记
- temp_result = temp_result
- .replaceAll("<(AREA|BASE|BASEFONT|BODY|BR|COL|COLGROUP|DD|DT|FRAME|HEAD|HR|HTML|IMG|INPUT|ISINDEX|LI|LINK|META|OPTION|P|PARAM|TBODY|TD|TFOOT|TH|THEAD|TR|area|base|basefont|body|br|col|colgroup|dd|dt|frame|head|hr|html|img|input|isindex|li|link|meta|option|p|param|tbody|td|tfoot|th|thead|tr)[^<>]*/>","");
- // 去掉成对的HTML标记
- // temp_result=temp_result.replaceAll("<([a-zA-Z]+)[^<>]*>(.*?)</\\1>","$2");
- htmlMatch = temp_result;
- temp_result = removeMatchHtmlTag();
- //System.out.println("6666:" + temp_result);
- // 用正则表达式取出标记
- Pattern p = Pattern.compile("<([a-zA-Z]+)[^<>]*>");
- Matcher m = p.matcher(temp_result);
- List endHTML = new ArrayList();
- while (m.find()) {
- endHTML.add(m.group(1));
- }
- // 补全不成对的HTML标记
- for (int i = endHTML.size() - 1; i >= 0; i--) {
- result.append("</");
- result.append(endHTML.get(i));
- result.append(">");
- }
- return result.toString();
- }
在实体类中针对需要截取的内容调用CutHTML();
public String getSubContent(int len){ if(len<=0||len>this.content.length()) return this.content; else return CutHtml.subStringHTML(this.content,len, "..."); }
JSP页面在该属性下直接调用getSubContent()方法,添加需要截取字符数。
<s:property value="getSubContent(70)" escape="false"/>
阅读全文
0 0
- Struts2标签简单使用——截取
- Struts2标签截取字符串
- struts2标签截取字符串
- struts2标签截取字符串方法
- Struts2标签—Iterator标签
- 如何用struts2标签截取字符串
- Struts2自定义简单标签
- 自定义Struts2简单标签
- struts2标签简单说说
- struts2中的if/else,iterator标签以及ognl简单使用
- Struts2之如何使用简单的UI标签
- Struts2 标签 迭代标签和控制标签的简单使用
- struts2标签库——UI标签
- struts2标签使用
- Struts2 标签使用
- Struts2标签使用
- Struts2标签使用
- Struts2标签使用
- js中时间戳转化为时间
- Linux wait/waitpid详解
- AtomicBoolean应用场景
- 图像平移缩放旋转匹配
- iOS直播 1.nginx+ramp搭建直播服务器
- Struts2标签简单使用——截取
- 如何破解mssql for linux 3.5G内存的限制
- Bitmap加载大图优化之位图重采样与Bitmap缓存Lru算法分析
- linux查看磁盘空间大小
- 操作系统学习笔记:PV同步原语
- Java中的异常
- Tensorflow简介
- 【DRP】——代码积累
- Windows Sockets网络编程(0)TCP In Action