[英]Custom JSP Tag which include another JSP
我要创建一个自定义JSP标记,如下所示。
<ng:template src="../js/Rule/templates/rule-list.jsp" />
它实际上将在scripts标记内包含文件“ ../js/Rule/templates/rule-list.jsp”,并按如下所示生成HTML。
<script type="text/ng-template" id="../js/Rule/templates/rule-list.jsp">
Content of ../js/Rule/templates/rule-list.jsp file
</script>
到目前为止,我已经创建了以下标记文件。
<%@ attribute name="src" required="true" rtexprvalue="true" %>
<script type="text/ng-template" id="${src}">
<%@ include file="${src}" %>
</script>
这是给这个错误
找不到文件“ $ {src}”
表示它试图包含其值的$ {src}。 有人可以建议如何从指定的属性值中将文件包括在标记文件中吗?
注意 :我正在使用angularjs。 我想加载没有ajax调用的angularjs模板。 因为我的浏览器无法通过AJAX调用加载ng-template来解决跨域调用问题。
WEB-INF
目录是一个特殊目录, 不属于Web(Servlet)应用程序的公共目录树。
Servlet规范状态(第70页左右):
在应用程序层次结构中存在一个名为“ WEB-INF”的特殊目录。 此目录包含与应用程序相关的所有内容,这些内容不在应用程序的文档根目录中。 WEB-INF节点不是应用程序的公共文档树的一部分。 容器不能将WEB-INF目录中包含的文件直接提供给客户端。 但是,使用
ServletContext
上的getResource
和getResourceAsStream
方法调用,Servlet代码可以看到WEB-INF目录的内容,并且可以使用RequestDispatcher调用公开WEB-INF目录的内容。
AngularJS无法看到Web应用程序WEB-INF文件夹内的任何文件夹,因为它没有“连接”。
您将必须将这些模板文件添加到公共文件夹中,以供Angular模板文件查看。
得到它了。 我需要使用动态包含为
<jsp:include page="${src}" />
一切正常。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.