import java.io.IOException;
import java.io.Writer;
import org.apache.struts2.components.Component;
import com.opensymphony.xwork2.util.ValueStack;
/**
*
* @parameter str:java.lang.String len:java.lang.Integer
* @说明:对字符串str进行判读,如果长度大于len,就截取len长度+“...”;打印结果
*/
public class SubStringLogic extends Component{
public SubStringLogic(ValueStack stack) {
super(stack);
// TODO Auto-generated constructor stub
}
private String str;
private Integer len;
public boolean start(Writer arg0) {
boolean result = super.start(arg0);
try {
//传入的字符串总长度
int strtotlelen = str.length();
//title中显示原字符串
StringBuffer stringBuffer = new StringBuffer(str);
/*
* str 要截取的字符串
* len:截取的长度
*/
if(str!=null){
if(null!=str&&!"".equals(str)&&len !=null &&len>0){
if(str.trim().length()>len){
str=str.substring(0,len)+"...";
}
}
str=transfer(str);
//获得要换行的次数(默认每行20个字符)。
int brCount = strtotlelen/20;
if(brCount>0){
int sub = 20;
for(int i=0;i<brCount;i++){
stringBuffer.insert(sub, " ");
sub+=20;
}
}
String titleStr=stringBuffer.toString();
arg0.write("<label title='"+titleStr+"'>"+str+"</label>");
}
} catch (IOException ex) {
ex.printStackTrace();
}
return result;
}
/**
* 对字符串转义,特殊字符转义。
*
* @param str
*/
public String transfer(String instr) {
/*
* 对截取的字符串进行转义
*/
if (null != instr && !("".equals(instr))) {
// if(instr.indexOf("&")>-1){
// instr = instr.replace("&", "&");
// }
if (instr.indexOf("<") > -1) {
instr = instr.replace("<", "<");
}
if (instr.indexOf(">") > -1) {
instr = instr.replace(">", ">");
}
if (instr.indexOf("\"") > -1) {
instr = instr.replace("\"", """);
}
//IE不支持'使用十进制'
if(instr.indexOf("'")>-1){
instr = instr.replace("'", "'");
}
if (instr.indexOf("\n") > -1) {
instr = instr.replace("\n", "<br>");
}
if (instr.indexOf("\r") > -1) {
instr = instr.replace("\r", " ");
}
//if (instr.indexOf(" ") > -1) {
// instr = instr.replace(" ", " ");
//}
}
return instr;
}
public boolean end(Writer writer, String body) {
// TODO Auto-generated method stub
return super.end(writer, body);
}
public String getStr() {
return str;
}
public void setStr(String str) {
this.str = str;
}
public Integer getLen() {
return len;
}
public void setLen(Integer len) {
this.len = len;
}
}
分享到:
相关推荐
标题“pads logic怎么转orcad”指的是将使用PADS Logic软件绘制的电子原理图转换为OrCAD软件能够打开和编辑的格式。PADS Logic和OrCAD都是用于电子原理图设计和电路板布局的电子设计自动化(EDA)软件,但它们分别由...
**logic逻辑分析仪软件** logic逻辑分析仪软件是一款经济实惠的数字信号分析工具,尤其适合对电子设备中的数字信号进行检测和调试。它能够在Windows XP和Windows 7操作系统上运行,为用户提供了一种便捷的方式来...
《Logic Setup 1.1.15 (64bit):小巧实用的64位音频制作软件》 Logic Setup 1.1.15 (64bit) 是一款专为64位Windows操作系统设计的音频制作软件,尤其适用于Win7和XP系统。此版本以其轻量级的特性而受到用户的青睐,...
Selease Logic Setup 1.2.18 是一款专门针对嵌入式系统开发的逻辑分析仪软件。在IT行业中,逻辑分析仪是调试硬件和软件交互的重要工具,它能够捕获并显示数字信号的实时状态,帮助工程师们理解和解决复杂的系统问题...
Seleae Logic是一款先进的逻辑分析仪软件,专为现代电子工程师和爱好者设计,提供高效的数据捕获和分析功能。逻辑分析仪是一种数字信号测试设备,它能够以高速度记录并显示数字系统的信号状态,帮助用户理解和调试...
PADS9.5 logic&layout菜单显示不全WIN8 WIN10补丁_make_28PADS9.5 logic&layout菜单显示不全WIN8 WIN10补丁_make_28PADS9.5 logic&layout菜单显示不全WIN8 WIN10补丁_make_28PADS9.5 logic&layout菜单显示不全WIN8 ...
【标题】"NECAnalyzer-master_logic_saleae_红外协议_saleaelogic_NEC协议_" 提供的是一款专门针对Saleae Logic逻辑分析仪设计的工具,用于解析和理解红外(IR)遥控器使用的NEC协议。这个工具的核心功能是帮助用户...
This text is written for a first course in the logic design of digital systems. It is writ- ten on the premise that the student should understand and learn thoroughly certain fundamental concepts in ...
Saleae 16 Logic+Setup+1.1.18是一款功能强大的协议分析仪软件,专为处理低速嵌入式系统的数字通信协议而设计。它适用于那些需要精确监测和解析电子设备间通信的工程师和开发者。这款软件的64位版本提供了对各种常见...
"logicflow+vue流程可视化开箱即用demo模板"是一个基于Vue.js框架和LogicFlow库构建的示例项目,旨在帮助开发者快速理解并应用流程图的可视化功能。这个模板提供了直观的界面和基本的交互,使得流程图的创建、编辑和...
逻辑分析仪软件Logic+Setup+2.3.53-master最新版本 逻辑分析仪软件Logic+Setup+2.3.53-master最新版本 逻辑分析仪软件Logic+Setup+2.3.53-master最新版本 错误修复 修复了 Linux 上的崩溃问题,其中设备的快速断开...
"PADS常用 logic宏.rar"这个压缩包文件显然聚焦于PADS Logic部分,Logic是PADS软件的一个组件,主要用于逻辑设计和仿真。宏在PADS Logic中扮演着重要角色,它们是一系列预定义的操作,可以提高设计师的工作效率,...
Saleae Logic 1.1.15 是一款强大的逻辑分析工具,主要应用于电子工程和计算机硬件领域的调试与分析。逻辑分析仪类似于一个针对数字信号的示波器,它能够捕捉并显示数字系统的信号活动,帮助用户理解系统内部的工作...
在电子设计自动化(EDA)领域,PADS Logic是一款广泛使用的电路设计软件,它允许工程师们进行电路原理图的绘制和管理。在复杂的设计项目中,元件编号是至关重要的,因为它们标识了电路中的每一个独特部件,确保了...
PADS是业界广泛使用的一款电子设计自动化软件,其中LOGIC同步是指在PADS Logic(原理图设计部分)和PADS Layout(PCB布局设计部分)之间的数据同步操作。为了实现高效的设计流程,以下将详细介绍在PADS软件中进行...
### PADS Logic与ORcad原理图的互转方法 #### 一、概述 在电子设计自动化(EDA)领域,PADS Logic与ORcad是两款非常流行的电路设计软件。PADS Logic以其直观的操作界面和强大的PCB设计功能而受到广泛欢迎,而ORcad...
标题中的“解决WIN10显示不全PADS Logic补丁.zip”指的是针对Windows 10操作系统下,使用PADS Logic软件时可能出现的界面显示不完整或部分功能无法正常显示的问题。这个问题可能是由于软件与操作系统之间的兼容性...
### 关于Power Logic转OrCAD的方法详解 #### 一、背景与目的 在电子设计领域,从一种EDA(电子设计自动化)工具切换到另一种工具的需求非常常见。这往往涉及到从原有的设计环境中导出数据,再导入到新的设计环境中。...
《Pads Logic元件编辑正式版视频教程》是针对电子设计自动化(EDA)工具Pads Logic的一款详细教学资源。Pads Logic是一款广泛应用于电路板设计的软件,它提供了强大的电路图编辑、PCB布局和布线功能,使得设计者能够...