1. ホーム
  2. Web制作
  3. HTML/Xhtml

input type=text value=str で不完全な解答を得る。

2022-01-15 05:40:35
今日、非常に奇妙な問題に遭遇しました。以下のコードを見てください。
SimpleDateFormat dateFormat = 新しい SimpleDa
コピーコード
コードは以下の通りです。
teFormat("yyyy year MM month dd day E ");
String date = dateFormat.format(new Date());

意図は、XXXX月XXXX日XXXX曜日をプリントアウトすることでした。
問題は以下のコードで、フォーマット後のデータを取得したい場合、value=メソッドで値を取ると、"XXXX年、XXXX月、XXXX日"しか取得できず、その後の"週 X" は決して取得できないのです。
コピーコード
コードは以下の通りです。

<td align="left">
<label>
<input type="text" value=<%=date%> disabled />
</label>
</td>

そこで、quot;yyyy year MM month dd day E "のスペースをすべて削除すると、通常通り、またはquot;yyyy year MM month dd day - 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オリジナルコード 結果の表示 説明
標識・表示マーカー未満
標識や表示マーカーより大きいもの
&amp; &は、他の特殊文字を表示するために使用することができます。
&quot; " 引用符
&reg; ® 登録済み
コピーライト
商標について
&ensp; 半角スペース
&emsp; 1つの空白ビット
&nbsp; 一定の行のない空白のスペース