Jade4J: 没有那个文件或目录
Jade4J: No such file or directory
我尝试在我的 Java Spring 应用程序中实施 Jade4J。不幸的是它找不到模板文件。
JadeConfig.java
@Configuration
@EnableWebMvc
public class JadeConfig {
@Bean
public SpringTemplateLoader templateLoader() {
SpringTemplateLoader templateLoader = new SpringTemplateLoader();
templateLoader.setBasePath("classpath:/templates/");
templateLoader.setEncoding("UTF-8");
templateLoader.setSuffix(".jade");
return templateLoader;
}
@Bean
public JadeConfiguration jadeConfiguration() {
JadeConfiguration configuration = new JadeConfiguration();
configuration.setCaching(false);
configuration.setTemplateLoader(templateLoader());
return configuration;
}
@Bean
public ViewResolver viewResolver() {
JadeViewResolver viewResolver = new JadeViewResolver();
viewResolver.setConfiguration(jadeConfiguration());
return viewResolver;
}
}
Controller.java
@RestController
@RequestMapping("/users")
public class UserController {
@GetMapping("/test")
public static String render() throws JadeCompilerException, IOException {
List<Book> books = new ArrayList<Book>();
books.add(new Book("The Hitchhiker's Guide to the Galaxy", 5.70, true));
Map<String, Object> model = new HashMap<String, Object>();
model.put("books", books);
model.put("pageName", "My Bookshelf");
return Jade4J.render("index", model);
}
}
一直显示错误“(没有这样的文件或目录)”。知道这里有什么问题吗?
- 你应该有一个
@Controller
,而不是 @RestController(对于 Json,XML),因为你正试图用 Jade 渲染 HTML。
- 不要自己调用 Jade4Render,而是 return 一个
reference to your template
。然后Spring会为你做渲染。
- 不要将方法设为静态。
因此您的代码应该如下所示(前提是 classpath:/templates/
中存在名为 index.jade
的文件)
@Controller
@RequestMapping("/users")
public class UserController {
@GetMapping("/test")
public String render(Model model) {
// add something to the model here, e.g. model.put("books", books);
return index;
}
}
我尝试在我的 Java Spring 应用程序中实施 Jade4J。不幸的是它找不到模板文件。
JadeConfig.java
@Configuration
@EnableWebMvc
public class JadeConfig {
@Bean
public SpringTemplateLoader templateLoader() {
SpringTemplateLoader templateLoader = new SpringTemplateLoader();
templateLoader.setBasePath("classpath:/templates/");
templateLoader.setEncoding("UTF-8");
templateLoader.setSuffix(".jade");
return templateLoader;
}
@Bean
public JadeConfiguration jadeConfiguration() {
JadeConfiguration configuration = new JadeConfiguration();
configuration.setCaching(false);
configuration.setTemplateLoader(templateLoader());
return configuration;
}
@Bean
public ViewResolver viewResolver() {
JadeViewResolver viewResolver = new JadeViewResolver();
viewResolver.setConfiguration(jadeConfiguration());
return viewResolver;
}
}
Controller.java
@RestController
@RequestMapping("/users")
public class UserController {
@GetMapping("/test")
public static String render() throws JadeCompilerException, IOException {
List<Book> books = new ArrayList<Book>();
books.add(new Book("The Hitchhiker's Guide to the Galaxy", 5.70, true));
Map<String, Object> model = new HashMap<String, Object>();
model.put("books", books);
model.put("pageName", "My Bookshelf");
return Jade4J.render("index", model);
}
}
一直显示错误“(没有这样的文件或目录)”。知道这里有什么问题吗?
- 你应该有一个
@Controller
,而不是 @RestController(对于 Json,XML),因为你正试图用 Jade 渲染 HTML。 - 不要自己调用 Jade4Render,而是 return 一个
reference to your template
。然后Spring会为你做渲染。 - 不要将方法设为静态。
因此您的代码应该如下所示(前提是 classpath:/templates/
中存在名为 index.jade
的文件)
@Controller
@RequestMapping("/users")
public class UserController {
@GetMapping("/test")
public String render(Model model) {
// add something to the model here, e.g. model.put("books", books);
return index;
}
}