评论

收藏

[JSP] jsp中定义和使用方法示例介绍

开发技术 开发技术 发布于:2021-10-23 19:40 | 阅读数:190 | 评论:0

在jsp中,如果需要处理复杂数据时,在上方定义一个java方法是很有效的解决方案,把处理数据的责任推给该方法,然后该jsp页面的主流程就不受影响。当然也可以使用js定义方法来处理,js似乎更善于定义这样的方法来处理前台数据,但有时候jsp和js之间倒腾数据时会出乱码或者报一些找不到对象的错误,因此他们之间的互相传值还是越少越好。

看一看jsp中定义一个字符串处理的方法:
<%! 
String splitString(String str, int a) { 
if (str != null && str.trim().length() > 0 && a > 0) { 
// 取得该字符串的字节长度 
int length = str.getBytes().length; 
// 全部不包括汉字 
if (str.length() == length) { 
// 如果截取长度是字符串长度以内,就substring,否则就取这个字符串 
if (a < str.length()) { 
return str.substring(0, a); 
} else { 
return str; 
} 
} // 含有汉字 
else { 
StringBuffer sb = new StringBuffer(); 
// 截取算法 遍历字符串,并且监测a值 
for (int i = 0; i < str.length() && a > 0; i++) { 
// 如果是汉字算2个长度。 
if (str.charAt(i) >= '\u4e00' && str.charAt(i) <= '\u9fa5') { 
// 如果是汉字且不是最后一个字符,就加上,否则不加 
if (a > 1) { 
sb.append(str.charAt(i)); 
a -= 2; 
} 
// 不是汉字只算一个长度 
} else { 
sb.append(str.charAt(i)); 
a--; 
} 
} 
return sb.toString(); 
} 
} 
return "输入有误"; 
} 
%>
该方法的功能是,传入一个字符串和长度,返回截取后的字符串,长度会按照汉字两个、字母数字一个的方式来统计,如果最后一个是汉字,那么这个汉字就放弃掉,绝不能出现半个汉字的情况。

jsp中定义方法,需要注意以下几点:

1,需要使用<%! %>这样的标签包起来,这是jsp中定义变量或者方法的标志。

2,如果在方法中需要使用内置对象out时,一定要在方法的参数列表中传过来,并且要让方法跑出一个IO异常。

3,方法的范围就不要定义了,反正就是内部使用,直接使用缺省范围的就可以了。
关注下面的标签,发现更多相似文章