页面使用struts2标签的悲剧bug

来源:互联网 发布:装修小软件 编辑:程序博客网 时间:2024/04/30 08:04

直接上代码了:在页面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转义字符&quot;(& q u o t ;)-OK" type="button" onclick="alert(&quot;OK&quot;);" /><br />
 

3.js的引号多级嵌套,早期一篇js引号嵌套的备忘

0 0
原创粉丝点击