繁体   English   中英

定制JSP标记,其中包括另一个JSP

[英]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上的getResourcegetResourceAsStream方法调用,Servlet代码可以看到WEB-INF目录的内容,并且可以使用RequestDispatcher调用公开WEB-INF目录的内容。

AngularJS无法看到Web应用程序WEB-INF文件夹内的任何文件夹,因为它没有“连接”。

您将必须将这些模板文件添加到公共文件夹中,以供Angular模板文件查看。

得到它了。 我需要使用动态包含为

<jsp:include page="${src}" />

一切正常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM