art*_*ung 8 jquery jsp el jquery-templates
我一直在为一些项目使用jQuery tmpl库,并且非常喜欢它.
我没有在一个需要在JSP中的小项目中使用它,而且事情变得奇怪了.它没有完全发挥作用.
<script id="servicesRow" type="text/x-jquery-tmpl">
<tr id="id_${id}">
<td>${name2}<br />${id}</td>
<td>${supported_roles}</td>
<td><button class="edit">Edit</button></td>
<td><button class="delete">Delete</button></td>
<td><a href="#">Show clients</a></td>
</tr>
</script>
Run Code Online (Sandbox Code Playgroud)
我试图理解为什么没有数据显示出来.事实证明,页面中的文本正在发生某种解析${foo}.因此,当我在我的页面上查看源代码时,所有这些元素都已被替换,如下所示:
<script id="servicesRow" type="text/x-jquery-tmpl">
<tr id="id_">
<td><br /></td>
<td></td>
<td><button class="edit">Edit</button></td>
<td><button class="delete">Delete</button></td>
<td><a href="#">Show clients</a></td>
</tr>
</script>
Run Code Online (Sandbox Code Playgroud)
哪个仍可用作模板,但jQuery tmpl无法完成其工作.我得到很多空行.
语法与我为JSTL找到的一些文档相匹配.但我没有,我可以说,安装了.我正在开发库存,Windows 7上的当前Tomcat以及从头开始在我的webapps /文件夹中构建应用程序.我没有,我可以说,启用了这样的任何东西,我很惊讶裸机${}被解析(而不是更喜欢的东西<%= %>,从PHP或ASP和类似的东西会更常见).
所以我的问题是:如何关闭我的jQuery tmpl模板的解析行为?在全球范围内,本地到单个JSP,或逃避它(我已经尝试了额外的括号,我尝试过反斜杠,我尝试了各种引号).我认为理想情况会有类似的东西:
<foo:stopParsingMyDollarSignsAndBracesPlease>
<script id="servicesRow" type="text/x-jquery-tmpl">
<tr id="id_${id}">
<td>${name2}<br />${id}</td>
<td>${supported_roles}</td>
<td><button class="edit">Edit</button></td>
<td><button class="delete">Delete</button></td>
<td><a href="#">Show clients</a></td>
</tr>
</script>
</foo:stopParsingMyDollarSignsAndBracesPlease>
Run Code Online (Sandbox Code Playgroud)
任何帮助或想法都表示赞赏.谢谢!
Bal*_*usC 14
该${}符号是表达语言.你可以在每个JSP的基础上关闭它
<%@page isELIgnored="true" %>
Run Code Online (Sandbox Code Playgroud)
或者在整个应用程序的基础上,通过以下方式web.xml:
<jsp-config>
<el-ignored>true</el-ignored>
</jsp-config>
Run Code Online (Sandbox Code Playgroud)
或者如果你真的想在JSP中的其他地方使用EL,那么你只需要在jQuery模板中转义那些\.你真的想避免使用老式的scriptlet.
<tr id="id_\${id}">
Run Code Online (Sandbox Code Playgroud)
或者您可以将所有JS代码放在自己的JS文件中(如果jQuery tmpl支持).
小智 6
使用{{= variable_name}},而不是${variable_name}在jQuery的模板.
https://github.com/jquery/jquery-tmpl/issues/56
小智 6
关闭EL是不可取的,当jsp页面有其他el时,你如何处理它,你可以这样做:
<script id="servicesRow" type="text/x-jquery-tmpl">
<tr id="id_{{= id}}">
<td>{{= name2}}<br />${id}</td>
<td>{{= otherInfo}}</td>
<td><button class="edit">Edit</button></td>
<td><button class="delete">Delete</button></td>
<td><a href="#">Show clients</a></td>
</tr>
Run Code Online (Sandbox Code Playgroud)
注意:El有一个空间,