使用input type=text value=str取值不完全解决方案
2014-07-22来源:

今天碰到一个很奇怪的问题,看看如下代码:

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 += "&nbsp;";

break;

default:

result += date.charAt(i);

}

}

%>

参考内容如下:

HTML原代码 显示结果 描述

&lt; < 小于号或显示标记

&gt; > 大于号或显示标记

&amp; & 可用于显示其它特殊字符

&quot; " 引号

&reg; ® 已注册

&copy; © 版权

&trade; ™ 商标

&ensp;  半个空白位

&emsp;  一个空白位

&nbsp; 不断行的空白

更多信息请查看IT技术专栏

推荐信息
Baidu
map