- 浏览: 453979 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (211)
- java (37)
- spring相关 (3)
- struts (10)
- 面试 (1)
- jsp/servlet (18)
- 持久化框架 (1)
- IT相关新闻 (3)
- 服务器 (11)
- 插件 (4)
- pushlet (3)
- js (24)
- oracle (29)
- mysql (9)
- hibernate (5)
- 开发工具 (6)
- jquery (6)
- 页面标签jstl,el (1)
- linux (25)
- 英语 (1)
- log4j (1)
- html/css (6)
- sqlserver (2)
- dwr (1)
- 设计模式 (4)
- vmware (2)
- office (1)
- eclipse (5)
- svn (1)
- webservice (1)
最新评论
-
18335864773:
建议使用 pageoffice 组件套红
js操作word套红 -
lopez:
数据库系统的客户程序只要向数据库系统声明了一个事务,数据库系统 ...
Hibernate事物控制与管理 -
liujq4512:
删了还是没用
An internal error occurred during: "Initializing Java Tooling". -
elaine0111:
非常感谢这篇文章,嘿嘿,解决了我的问题。我把这段代码保存在我的 ...
Js设置文本框中焦点位置在最后 -
weishuguangeye:
不错!
单例模式(Singleton)
问题描述:
关于自动换行问题,正常字符的换行是比较合理的,而连续的数字和英文字符常常将容器撑大,挺让人头疼。
我们可以通过CSS控制自动换行,但效果并不是很好,查了一些资料也没有找的好的现成的控件,于是我编写了一个自定义标签解决这个问题,可能其中还存在一些问题,也不是很完善,我会虚心听从指教。
关于自定义标签的理论可参看:JSP2的自定义标签这片贴子(引用的)。
Java代码
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)+"...";
}
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;
}
}
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)+"...";
}
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;
}
}
关于自动换行问题,正常字符的换行是比较合理的,而连续的数字和英文字符常常将容器撑大,挺让人头疼。
我们可以通过CSS控制自动换行,但效果并不是很好,查了一些资料也没有找的好的现成的控件,于是我编写了一个自定义标签解决这个问题,可能其中还存在一些问题,也不是很完善,我会虚心听从指教。
关于自定义标签的理论可参看:JSP2的自定义标签这片贴子(引用的)。
Java代码
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)+"...";
}
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;
}
}
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)+"...";
}
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;
}
}
发表评论
-
http:get和post的区别
2011-01-05 16:48 9651. get 是从服务器上获取数据,post 是向服务器传送数 ... -
JSP动态网页程序设计
2010-11-29 10:27 1154JSP(JavaServer Pages): J ... -
写自定义标签时标记attribute里rtexprvalue的用法
2010-10-31 21:08 967其实以前也有写过自定义标签, 但是没有注意到过<rtex ... -
带标签体的标签
2010-10-31 21:08 1383带标签体的标签,就是允许在标签内嵌套标签,通常可用于完成一些逻 ... -
JSP自定义标签执行顺序
2010-10-31 21:05 1127首先来看一下简单标签 ... -
JSP自定义标签开发流程
2010-10-31 21:04 984一、概述 jsp(SUN企业级应用的首选)中有一 ... -
自定义标签问答
2010-10-31 21:03 8901. 什么是自定义标签 ... -
自定义标签类 判断权限
2010-10-31 21:03 1769功能 :判断当前用户是否有权限访问当页面 思路:读取当 ... -
JSP2的自定义标签(简单,带属性,带标签体)
2010-10-31 21:02 2227引用 在JSP规范的1.1版中增加了自定义标签库规范,自定义标 ... -
JSP:自定义标签——开发实例
2010-10-31 21:00 1296【实例109】 开发带属性的标签:helloTagHaveP ... -
JSP自定义标签学习(基础)
2010-10-31 20:57 984自定义标签的最大的特点: 利用 自定义标签,软件开发人员和页面 ... -
关于EL 表达式
2010-10-13 23:10 1183关于EL 表达式 EL表达式总是用大括号括起,而且前面有一个 ... -
页面跳转大全
2010-10-04 13:29 1537JSP中的跳转: (1). forward()方法 使 ... -
JSP、Servlet、Tomcat、JDK、J2EE版本比较(转)
2010-10-03 23:55 735一 JSP2.0与JSP1.2比较 JSP 2.0是对JS ... -
jsp内置对象
2010-04-12 11:27 1123这几天整理项目资料,发现好多东西都快忘记了,因此打算从头整理一 ... -
页面状态响应码
2010-03-29 09:30 1358状态响应码 100~199:表 ... -
JSTL与EL表达式
2010-03-27 14:51 3214取Session中的值 <c:out value=&q ...
相关推荐
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_...