【发布时间】:2014-10-14 19:52:23
【问题描述】:
我有 xhtml 文件(JSF 应用程序),我正在渲染一个带有自定义列的数据表。
$(document).ready(function() {
$('#example').dataTable( {
"ajax": "/app_api/list/appsportfolio",
"columns": [
{ "data": "name" },
{ "data": "scenarioName" },
{ "data": "architecture" },
{ "data": "status" },
{ "data": "contact" },
{ "data": "id", "mRender": function(data, type, row) {
return "<ul id=\"menu\"> \
<li>Actions \
<ul> \
<li class=\"ui-state-disabled\">Views</li> \
<li>Item 3-2</li> \
<li class=\"ui-state-disabled\">Actions</li> \
<li>Item 3-4</li> \
<li>Item 3-5</li> \
</ul>\
</li>\
</ul>";
}}
]
} );
$( "#menu" ).menu();
} );
由于最后一个自定义列,我收到:
JBWEB000236:servlet jsp 的 Servlet.service() 引发异常:javax.faces.view.facelets.FaceletException:解析 applicationPortfolioList.xhtml 时出错:跟踪错误 [行:111] 与关联的属性“id”应打开报价元素类型“ul”。
我不明白为什么它抱怨引号,转义不正确吗?
即使我把整个字符串放在同一行,同样的错误仍然存在。
更新:似乎如果我对整个字符串进行 HTML 编码,它可以正常工作:
<ul id=\"menu\"> <li>Actions <ul> <li class=\"ui-state-disabled\">Views</li> <li>Item 3-2</li> <li class=\"ui-state-disabled\">Actions</li> <li>Item 3-4</li> <li>Item 3-5</li> </ul> </li> </ul>
但这看起来很丑。如果有人知道其他解决方案,请告诉我。
【问题讨论】:
-
把JS代码放在普通的JS文件里,不要放在XML文件里。
标签: javascript jsf facelets