JSP 頁面層級宣告
<%!
stc_RSYB_Name stcRSYName1[];
stc_SYB_INF stcSYBINF1[];
%>
取得客戶端主機名/IP
String get_Myhostname(HttpServletRequest request) {
String host = request.getRemoteHost();
return host.toUpperCase();
}
空值處理工具
String dealNull(String str) {
return (str == null) ? "" : str;
}
Object dealNull(Object obj) {
return (obj == null) ? "" : obj;
}
int dealEmpty(String s) {
s = dealNull(s);
return s.isEmpty() ? 0 : Integer.parseInt(s);
}
字串取代
String replace(String str, String substr, String restr) {
String[] tmp = split(str, substr);
if (tmp.length == 0) return "";
StringBuilder sb = new StringBuilder(tmp[0]);
for (int i = 1; i < tmp.length; i++) {
sb.append(restr).append(tmp[i]);
}
return sb.toString();
}
HTML 編碼/解碼
String HtmlEncode(String txt) {
txt = replace(txt, "&", "&");
txt = replace(txt, "\"", """);
txt = replace(txt, "<", "<");
txt = replace(txt, ">", ">");
txt = replace(txt, " ", " ");
return txt;
}
String unHtmlEncode(String txt) {
txt = replace(txt, "&", "&");
txt = replace(txt, """, "\"");
txt = replace(txt, "<", "<");
txt = replace(txt, ">", ">");
txt = replace(txt, " ", " ");
return txt;
}
JavaScript 警示/確認視窗
void sAlert(String title, String msg, String focus, JSPWriter out) {
out.println("");
}
void sConfirm(String title, String msg, String location, JSPWriter out) {
out.println("");
}
字串長度(Shift_JIS 位元組數)
int getStringLength(String s) {
return s.getBytes("Shift_JIS").length;
}
固定寬度格式化輸出
void formatString(String s, int width, JSPWriter out) {
// 依 Shift_JIS 位元組寬度截斷或補空白
// 空白輸出 ,其餘字元經 HtmlEncode
}
數字/日期判斷與格式化
isNumeric:嘗試 Integer.parseInt 捕捉例外
mk_date:多種模式轉換日期字串格式(YY/MM/DD、YYYYMMDD 等)
四捨五入至整數(銀行家演算法)
int cInt(float val) {
// 正負數分別處理
// .5 時看整數部份奇偶決定進位方向
}
long cLng(float val) { return cInt(val); }
float dealFloat(String s) { return dealNull(s).isEmpty() ? 0f : Float.parseFloat(s); }