今天碰到一個很奇怪的問題,看看如下代碼:
SimpleDateFormat dateFormat = new SimpleDa
復制代碼代碼如下:teFormat("yyyy年MM月dd日 E ");
String date = dateFormat.format(new Date());
本意是想要打印出來XXXX年XX月XX日 星期X
問題出在如下代碼,當我想要取得格式化之後的數據時,在value=方法取值時,只能取到“XXXX年XX月XX日”,後面的“星期X”一直取不到
復制代碼代碼如下:
<td align="left">
<label>
<input type="text" value=<%=date%> disabled />
</label>
</td>
①後來想到,有可能是HTML轉義問題,於是就將"yyyy年MM月dd日 E "中的空格全部去掉了,結果可以正常取值了或者改為“yyyy年MM月dd日-E”
②還有一種方法,只要使用轉義字符將准備顯示的字符串中內容逐個替換即可
復制代碼代碼如下:
<%
String result = "";
for (int i = 0; i < date.length(); i++) {
switch (date.charAt(i)) {
case '<':
result += "<";
break;
case '>':
result += ">";
break;
case '&':
result += "&";
break;
case '"':
result += "\"";
break;
case '\'':
result += "'";
break;
case ' ':
result += " ";
break;
default:
result += date.charAt(i);
}
}
%>
參考內容如下:
HTML原代碼 顯示結果 描述
< < 小於號或顯示標記
> > 大於號或顯示標記
& & 可用於顯示其它特殊字符
" " 引號
® ® 已注冊
© © 版權
™ ™ 商標
  半個空白位
  一個空白位
不斷行的空白