所以我试图在Spring控制器中构建一些HTML标记。示例代码:
append(sb ,"<div class="myDiv">");
在浏览器上生成以下HTML源代码:
<div class=""myDiv"">
追加代码:
private void append(StringBuilder sb, String value) {
sb.append(value).append(System.getProperty("line.separator")).append('\n');
}
我的问题是,为什么生成的HTML代码有一组额外的&#34;&#34;围绕文字 myDiv ?我的控制器方法是生成这个HTML:
@RequestMapping(value = "/getSerialRanking", method = RequestMethod.POST, produces = MediaType.TEXT_HTML_VALUE)
@ResponseBody
public String getSerialRankings(@RequestParam(value = "serialNumber", required = false) String serial){
答案 0 :(得分:1)
在没有引号的html单字属性中是合法的
<div class=myDiv>
由您的浏览器转换为此
<div class="myDiv">
根据这些知识,我假设您的Spring Controller会自动将值转换为<div class=""myDiv"">
然后您的浏览器会将"
转换为合法的HTML实体"
。
"
被忽略,直到它到达浏览器,并将其转换为合法的HTML实体"
最后,我认为您可以安全地删除此案例的"
。或者,如果您在HTML属性中使用多个单词,请使用@ElliottFrisch解决方案:
append(sb ,"<div class=\"myDiv\">");
append(sb ,"<div class='myDiv'>");
答案 1 :(得分:0)
不要使用HTML引号,我想你想改变
append(sb ,"<div class="myDiv">");
转义双引号,如
append(sb ,"<div class=\"myDiv\">");
或 HTML允许您混合引号,因此您可以说
append(sb ,"<div class='myDiv'>");