页面施用struts2标签的悲剧bug
页面使用struts2标签的悲剧bug
直接上代码了:在页面input标签中嵌套s:property赋值语句
<input id="Category" name="Category" value='<s:property value="Category"/>'/>
仔细看,为了不使得input标签里面双引号套双引号,在value的地方使用了单引号'做范围界定。今天被测试发现一个悲剧的bug。。
如果value的值带有单引号',用s标签输出到页面就会被截断。
<input id="fuwuCategory" name="fuwuCategory" value='我爱'悲剧'/>
比如 value=我爱'悲剧,那么html输出将会是: 只能看到“我爱”,单引号及"悲剧"都消失了。。。
所以正确的写法只能是下面这样的:S标签输出值,只能用双引号包裹。
但是这样双引号嵌套,看起来是不符合html规范的
<input id="fuwuCategory" name="fuwuCategory" value="<s:property value="spinfo.fuwuCategory"/>"/>
------------------------------ps..--------------------------------------
1.关于html引号的使用:
//正确 <input value="外双内单-OK" type="button" onclick="alert('OK');" /> <input value="外单内双-OK" type="button" onclick='alert("OK");' /> //错误示例 <input value="外双内双-错误" type="button" onclick="alert("OK");" /> <input value="外单内单-错误" type="button" onclick='alert('OK');' />
2.html转义和js转义的区别:
//错误,html中使用js语法 <input value="Test" type="button" onclick="alert(\"OK\");" /> //正确 <input value="HTML转义字符"(& q u o t ;)-OK" type="button" onclick="alert("OK");" /><br />
3.js的引号多级嵌套,早期一篇js引号嵌套的备忘