使用<input type="text" value=<%=str%>>出现取值不全的问题

来源:互联网 发布:印度火车知乎 编辑:程序博客网 时间:2024/04/27 22:51
今天碰到一个很奇怪的问题,看看如下代码:
SimpleDateFormat dateFormat = new SimpleDateFormat("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 += "&nbsp;";
break;
default:
result += date.charAt(i);
}
}
%>

参考内容如下:
HTML原代码    显示结果     描述 
&lt;                     <             小于号或显示标记 
&gt;                    >             大于号或显示标记 
&amp;               &             可用于显示其它特殊字符 
&quot;               "              引号 
&reg;                 ®             已注册 
&copy;              ©              版权 
&trade;              ™             商标 
&ensp;                             半个空白位 
&emsp;                          一个空白位 
&nbsp;                             不断行的空白 

原创粉丝点击