2012-01-17 119 views
1

我在struts.xml中通过struts.ui.templateDir建立了一个模板目录。现在,当我访问我的页面时,出现了一个java.io.FileNotFoundException,它寻找一堆我只能猜测Freemarker默认查找的文件。Freemarker寻找默认模板

这里有一个这样的文件:

java.io.FileNotFoundException: Template /WEB-INF/templates/simple/form-close.ftl not found. 

我不希望这个文件或者比我创建要寻找模板以外的任何其他文件。有什么方法可以防止Freemarker做到这一点?另外,该库的文档在哪里?我似乎无法找到除博客网站以外的其他东西...

+0

哪个库的文档? – 2012-01-17 19:58:28

+0

Freemarker。我想我找到了一个,虽然看起来非常可怕... – kand 2012-01-17 20:02:58

+0

不知道我明白了;你在找什么FreeMarker文档?最新版本是2.3.18,用户指南和API文档都在FreeMarker网站上。 – 2012-01-17 20:11:56

回答

1

基本上任何struts标签都使用一个或多个* .ftl来为网页呈现特定标签(它们是必需的)。

你不能'只删除'一些模板。如果您想编写自己的模板,请将所有ftls从struts jar(templates.simple)复制到您的模板目录。然后替换你想改变的ftls。

大部分情况下,重写struts.xml并不是必要的,你也可以通过struts.properties设置你的模板路径和标准主题。

### Standard UI theme 
struts.ui.theme=xhtml 
struts.ui.templateDir=template 

更新到您的评论:我想,你想提供自己的模板。但是你也可以为struts标签指定'theme'属性来为任何标签改变一个ftl。

<s:select name="myName" theme="myTheme" /> 

然后创建您的select.ftl并将其添加到src/main/resources/template/myTheme下。

+0

嗯,我不想改变一个特定的ftl,我想添加我自己的自定义的。 – kand 2012-01-17 19:59:14

+0

我试图添加一个我可以通过struts组件标签访问的自定义模板。我是否正确地处理这个问题? – kand 2012-01-17 20:04:49

+0

我已经更新了关于如何为单个标签使用自定义模板的答案。 – proko 2012-01-17 20:14:08