如何在运行时加载的jsp中包含一个html片段?

时间:2013-11-17 12:42:06

标签: java file jsp servlets

我需要在JSP 中包含内容而不使用 include指令。

使用<%@include file="includeMe.htm" %>很容易做一个服务器端包含,但{<1}}的内容被添加到JSP 之前将JSP转换为Servlet by容器。这意味着如果includeMe.htm被修改,则更改不会反映在生成的includeMe.htm Servlet文件中。我厌倦了进入Tomcats生成的文件目录,手动删除生成的java和类文件,或者每次包含的文件发生变化时重新部署我的应用程序。

我是否需要编写一个代码块来逐行读取文本文件中的数据,然后像这样写出来?

.java

是否有更简单或更清洁的方式?

2 个答案:

答案 0 :(得分:7)

看看答案here。 您也可以使用<c:import>

  

2)<jsp:include>标准动作

<jsp:include page="header.jsp" />
     

动态:将页面属性值中的内容添加到当前页面请求时。更多是为了动态   来自JSP的内容。

3)<c:import>   JSTL标签:

<c:import url=”http://www.example.com/foo/bar.html” />
     

动态:将网址属性值中的内容添加到当前页面,在请求时。它很有用   <jsp:include>,但它更强大,更灵活:不像   另外两个包括,<c:import> 网址可以来自外部   web容器

关于将文件读入字符串。如果文件很小,请执行以下一行:

String content = new Scanner(new File("filename")).useDelimiter("\\Z").next();

答案 1 :(得分:3)

您可以将.tag个文件用于可重复使用的内容,或者将<jsp:include> INCLUDE 调度)用于另一个JSP。

然而,Tomcat是able to re-compile JSPs when any of the included files got changed

  

在包含页面更改时重新编译JSP - Jasper 2现在可以检测编译时从JSP包含的页面何时发生更改,然后重新编译父JSP。

另请注意,通常的做法是对.jspf中包含的文件使用<%@include %>(JSP片段)扩展名。