问题描述:
关于自动换行问题,正常字符的换行是比较合理的,而连续的数字和英文字符常常将容器撑大,挺让人头疼。
我们可以通过CSS控制自动换行,但效果并不是很好,查了一些资料也没有找的好的现成的控件,于是我编写了一个自定义标签解决这个问题,可能其中还存在一些问题,也不是很完善,我会虚心听从指教。
关于自定义标签的理论可参看:JSP2的自定义标签这片贴子(引用的)。
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.tagext.BodyContent;
import javax.servlet.jsp.tagext.BodyTagSupport;
public class TagTextLimit extends BodyTagSupport{
private int total = 0;
private int numOfRow = 0;
public int doEndTag()throws JspException{
try{
if(bodyContent!=null){
String str = bodyContent.getString();
String result = "";
if( numOfRow!= 0){
String[] temp = str.split(" ");
for(int i = 0;i<temp.length;i++){
if(temp[i].length() > numOfRow){
String str1 = temp[i].substring(0,numOfRow-1)+"-";
String str2 = temp[i].substring(numOfRow-1);
while(str2.length()>numOfRow-1){
str1 += str2.substring(0,numOfRow-1)+"-";
str2 = str2.substring(numOfRow-1);
}
temp[i] = str1.concat(str2);
}
result += temp[i]+" ";
}
str = result;
}
if(total!=0){
result = str.substring(0, total)+"...";
}else{
result = str;
}
if(numOfRow == 0 && total == 0){
bodyContent.writeOut(bodyContent.getEnclosingWriter());
}else{
pageContext.getOut().write(result);
}
}
}catch(java.io.IOException ex){
throw new JspTagException("IOError:"+ex.getMessage());
}
return EVAL_PAGE;
}
public int doStartTag() throws JspException {
return EVAL_BODY_TAG;
}
public int doAfterBody() throws JspException {
return SKIP_BODY;
}
public void doInitBody() throws JspException {
super.doInitBody();
}
public void setBodyContent(BodyContent content) {
this.bodyContent = content;
}
public int getNumOfRow() {
return numOfRow;
}
public void setNumOfRow(int numOfRow) {
this.numOfRow = numOfRow;
}
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
}
分享到:
相关推荐
4. **字符串显示**:显示字符串在LabVIEW中通常是通过“显示”函数或者“图元”(如标签)来完成的。对于数组,可以使用数组循环和“显示”函数,逐个显示数组元素。或者,如果要一次性显示整个数组,可以使用“格式...
例如,如果字符串太长则截断,太短则填充。 - Java 8引入了`StringJoiner`类,可以在两端添加分隔符和前缀后缀,从而间接实现字符串的填充或截断。 5. **使用正则表达式**: - 正则表达式可以用于匹配和替换字符...
3. **对齐和填充**:了解如何控制字符串的宽度,用空格或其他字符填充,以保持输出的一致性。这对于创建整齐的报表或表格很有用。 4. **精度控制**:在处理数字时,可能需要指定小数位数或整数位数。例如,在显示...
自定义分页标签是指开发者根据项目需求,为应用程序创建的特定分页组件,以便更好地控制和美化页面的分页显示。本篇文章将深入探讨自定义分页标签的相关知识点。 首先,我们要理解什么是分页。分页是将大量数据分割...
当EL表达式被错误地当作字符串处理而不是被解析时,会导致其原本要展示的数据无法正确显示。这个问题在使用Java EE 5及以上版本时比较常见。 要解决这个问题,首先需要理解EL表达式的解析与web.xml配置文件中指定的...
标题“文本框指定字符串长度”和描述“ios限制uitextfield字符长度”所指的就是如何在iOS中设置`UITextField`的字符限制。 首先,我们可以使用`UITextField`的代理方法来实现这一功能。`UITextField`遵循`...
4. **XML标签**:处理XML文档,如`<c:out>`显示XML内容,`<x:parse>`解析XML字符串。 5. **SQL标签**:执行数据库查询,如`<sql:update>`、`<sql:query>`和`<sql:resultSet>`。 使用JSTL的好处在于,它将Java代码...
2. **HTML模板**:定义了自定义标签结构的HTML模板文件,可能是独立的文件或嵌入在源代码中的字符串。 3. **CSS样式**:为了美观和交互性,可能会有CSS文件来控制多级SELECT的显示样式。 4. **示例或测试文件**:...
拆分字符串涉及到将一个长字符串分解成若干个子字符串,这在处理数据、解析文本或读取文件时非常有用。 1. **字符串拆分方法**: - 使用“字符串分割”函数:LabView提供了“字符串分割”函数,可以根据特定的分隔...
1. **控件**:这可能指的是用户界面(UI)中使用的控件,如文本框(TextBox)用于输入字符串,或者列表框(ListBox)或数据网格(DataGridView)用于显示分解后的结果。控件是Windows应用程序中交互元素,用户可以...
Sprinter的出现,填补了这一空白,它允许开发者使用类似于`%d`、`%s`这样的格式令牌来控制字符串中不同类型的变量如何插入。 Sprinter库的核心概念是格式化字符串模板,这些模板包含静态文本和格式化令牌。格式化...
在这个系统中,可能使用了图像验证码,要求用户输入图片中显示的一串随机字符,只有输入正确才能完成登录,从而增强了系统的安全性。 **5. 过滤器(Filter)** 在Web应用程序中,过滤器用于在请求到达目标资源之前...
在上面的例子中,`MyCustomAttribute`类接受一个字符串参数`description`,并可以通过`AllowMultiple = true`设置允许在同一个目标上多次应用该属性。 接下来,我们可以在代码中应用这个自定义属性,比如在WPF的...
4. **自定义标签系统**:可以方便地创建自定义标签,用于显示带有特定样式的文本,比如高亮关键词或突出显示价格。 5. **HTML解析**:将HTML内容转换为NSAttributedString,方便从网络获取的HTML文本在iOS应用中展示...
结合标签"源码",可能意味着这篇博文详细解释了如何使用源代码实现这些功能,包括自定义的字符串截取函数、点击事件处理和Base64编码解码。"工具"标签则可能暗示了博主分享了一些实用的工具或者技巧,帮助读者更有效...
Ruby-ActsAsTaggableOn 是一个非常流行的Rails插件,用于在动态环境中实现自定义标签功能。这个插件使得在你的Rails应用中添加标签系统变得简单高效,它提供了灵活的接口来管理和操作标签数据。 首先,让我们深入...
这个压缩包文件包含了关于MATLAB的几个核心概念,如数据显示格式、逻辑值处理、数值与逻辑值的转换、字符字符串的操作以及函数句柄的使用。下面将逐一详细介绍这些知识点。 1. **数据显示格式**: 在MATLAB中,...
nl2br()函数可以将字符串中的换行符(\n)转换为HTML的 标签,常用于文本显示。相对应地,br2nl()函数则将 标签转换为换行符。 2. 使用preg_replace()函数进行复杂的模式匹配和替换操作。例如,merge_spaces...
接着,开发者可以在文本字符串中插入自定义标签,并编写对应的处理代码。此外,对于"说明.txt"文件,通常会包含插件的安装指南、使用示例和注意事项,开发者应仔细阅读以确保正确使用。 6. **优化与性能** 自定义...
在导航项中,如果某些名称过长,可以通过截取字符串的方式来显示更简洁的名称,同时保持完整的名称作为提示信息。 ```php foreach ($nav_list as $key => $val): $alltext = $val['name']; $val['name'] = utf8_...