在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 "輸入有誤";
}
%>
|
新聞熱點
疑難解答