我正在尝试从我的主干视图执行jsp代码.
我正在从我的HTML调用服务器端api,如下所示
index.jsp(此jsp中包含sample.js)
%@ page contentType="text/html;charset=UTF-8"
import="foo.*,java.util.List"
%>
<%
Foo foo = new Foo();
List<XYZ> xyzList = foo.getList();
%>
我正在使用骨干框架.我的js代码如下.
sample.js
SampleView = Backbone.ModalView.extend(
{
name: "SampleView",
model: SomeModel,
templateHtml : "<div ><span>Search </span>" +
"<table border='1'>"+
"<thead>"+
"<tr>"+
"<td></td>"+
"<th>header1</th>"+
"<th>header2</th>"+
"<th>header3</th>"+
"</tr>"+
"</thead>"+
"<tr>"+
"<% for(XYZ xyz: xyslist ){ %>"+
"<td><input type='checkBox' value='<%= xyz.getName()%>'></td>"+
"<td name='selected'><%= xyz.getName()%></td>"+
"<td></td>"+
"<td></td>"+
"<% } %>"+
"</tr>"+
"<tr>"+
"<td><input type='checkBox' value='test'></td>"+
"<td name='selected'>test</td>"+
"<td></td>"+
"<td></td></tr>"+
"</table><button id='select'>Select</button></div>",
initialize: function(){
_.bindAll( this, "render");
this.template = _.template( this.templateHtml);
},
events: {
"click #select": "select"
},
select: function(){
//implementation
},
render: function(){
$(this.el).html( this.template());
return this;
}
});
问题是,它不执行jsp代码.它仅显示“测试”复选框,该复选框是经过硬编码的,不会从服务器端检索列表.你能告诉我我是否在这里想念什么吗?谢谢.
解决方法:
<%和%>下划线模板引擎也使用JSP中使用的标记.当没有任何变量要提供时,为什么在视图中使用模板?
尝试运行您的代码时,下划线模板引擎为我提供了“意外标识符”,因为<%和%>不包含要处理的有效JavaScript代码.
代替
$(this.el).html( this.template());
您应该像这样直接插入HTML字符串
$(this.el).html(this.templateHtml);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。