2012-12-28 77 views
-1

我想从一个给定的文件(ieahtml)开始,如果我看到一个模式是这样的:实现JSP:包括Java的

<!--$include file="b.html"--> 

我会去那个文件(b.html),并采取无论它有和所有文件将被写入最终文件(即output.html)

如果我在b.html中看到一个包含,我应该遵循包含它也采取一切,我应该递归地重复它在Java?

任何想法?

PS:它与jsp:include类似,但我想自己实现它。我将它作为一个Maven插件来实现,并且我为我的需要构建了一个maven插件,但是使用递归或者不使用正则表达式模式或者其他有效的方式是我正在寻找的。

+1

任何想法?听起来很棒!除此之外,你还有其他问题吗? –

+0

尝试查找jsp的'include'指令吗?听起来像你正在寻找...(或从ASP,或PHP相同...) – bdares

回答

0
  1. 您需要创建一个函数来获取文件列表,例如, getFileList(htmlFile:File): File[];
  2. 创建一个readline函数并创建一个函数来解析行,其模式类似于"^.*<!\\-\\-\\$include file\\=\"(.+)\\.(html|htm)\" \\-\\->.*$",这是一个正则表达式,它可以匹配您搜索的正则表达式。让我们定义函数的名字为checkRule(line:String):boolean
  3. 如果checkRule返回true,并且获取文件名,则递归调用getFileList通过传递刚发现的文件名。
  4. 小心无限循环。例如,a.html包含b.html,而b.html包含a.html,则会变成无限循环。所以你需要检查文件列表来忽略文件。

祝你好运!!!