ftl文件找不到—2

ftl文件找不到—2

# 具体遇到的问题

1
我是用的idea写的,然后sample1.ftl和FreemarkerSample1类是在同一个文件夹下,但是一直提示找不到ftl文件,怎么解决呢?<br>

# 报错信息的截图

http://img1.sycdn.imooc.com//climg/5f9ab6a709ed507330080640.jpg

# 相关课程内容截图

目录截图:
http://img1.sycdn.imooc.com//climg/5f9ab69d0915498c05440864.jpg

1
<br>

# 尝试过的解决思路和结果

# 粘贴全部相关代码,切记添加代码注释(请勿截图)

在这里输入代码,可通过选择【代码语言】突出显示

package freemarker;

import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;

import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.HashMap;
import java.util.Map;

public class FreemarkerSample1 {
public static void main(String[] args) throws IOException, TemplateException {
Configuration config=new Configuration(Configuration.VERSION_2_3_30);
config.setClassForTemplateLoading(FreemarkerSample1.class,"");
Template t=config.getTemplate("sample1.ftl");
Map data=new HashMap();
data.put("site","百度");
data.put("url","www.baidu.com");
t.process(data, new OutputStreamWriter(System.out));


}
}
1
<br>


正在回答

登陆购买课程后可参与讨论,去登陆

3回答

同学你好,1、在同学贴出的目录结构中,这是一个maven结构的项目,默认的源代码目录下(src/main/java目录)的ftl等资源文件并不会在编译的时候直接加载到对应目录,会将对应类型的文件舍弃掉。

在这种项目中,一般都会把配置文件放到src/main/resources目录下,针对这个目录,maven的resources会对其进行单独的加载配置。

    ​2、同学如果想将src/main/java目录下的ftl编译后加载到编译后目录中,可以在pom.xml中增加如下配置

http://img1.sycdn.imooc.com//climg/5f9f70b009fb7cf206270420.jpg

1
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"<br>  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><br>  <modelVersion>4.0.0</modelVersion><br>  <groupId>com.imooc</groupId> <br>  <artifactId>spring_ioc</artifactId> <!--项目名--><br>  <packaging>war</packaging><br>  <version>1.0-SNAPSHOT</version><br>  <name>spring_ioc Maven Webapp</name><br>  <url>http://maven.apache.org</url><br>  <dependencies><br>    <dependency><!--引入jar包--><br>      <groupId>junit</groupId><br>      <artifactId>junit</artifactId><br>      <version>4.10</version><br>    </dependency>    <br>  </dependencies><br>  <build><br>    <finalName>spring_ioc</finalName><br>    <!-- 配置ftl文件在java目录下正常编译加载 --><br>    <resources><br>      <resource><br>        <directory>src/main/java</directory><br>        <includes><br>          <include>**/*.ftl</include><br>        </includes><br>      </resource><br>    </resources>      <br>  </build><br></project><br>

    ​3、同学还可以直接将ftl文件写在resource目录下

http://img1.sycdn.imooc.com//climg/5f9f717409eb479e04960808.jpg


好帮手慕小脸 2020-11-01 19:12:20

同学你好,建议同学删除target目录,并重构一下项目

http://img1.sycdn.imooc.com//climg/5f9e97ab09eb6ef402710401.jpg

http://img1.sycdn.imooc.com//climg/5f9e98050993bc9e02790197.jpg

或重启项目再试试

  • 提问者 慕仰7217027 #1
    谢谢老师,rebuild项目是可以在target目录中同步.class文件,但是ftl文件却不会自动同步,必须要手动复制进去才可以。。。有什么办法可以让它自动添加进去吗。
    2020-11-01 23:27:31
好帮手慕阿满 2020-10-30 10:51:59

同学你好,这边测试同学的代码并没有什么问题,如:

http://img1.sycdn.imooc.com//climg/5f9b7e2a0970012110450509.jpg

建议同学在target文件下,查找是否存在对应的目录是否存在sample1.ftl文件,如果没有,建议同学删除target文件重新运行再试试,或者复制文件放到target文件下。

http://img1.sycdn.imooc.com//climg/5f9b7e3a09c68e6b02660062.jpg

祝:学习愉快~

  • 提问者 慕仰7217027 #1
    谢谢老师,确实是和target文件夹有关系。但是我发现ftl文件必须要手动复制进去才行,但是java类文件就会自动在target文件夹下生成。有没有办法能让ftl文件也在target文件夹里同步呢
    2020-11-01 18:46:33
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码