我正在尝试将Sitemesh (3)模板与Spring Boot (4+)结合使用,使用基于Java注解的配置。
当我点击控制器URL时,将调用处理程序方法。Sitemesh过滤器被激活(调试证明了这一点)。
然而,我得到了一个404,我相信这是因为在配置中,找不到Freemarker模板(在某个地方路径错误)。
代码如下,任何关于我做错了什么的建议都会很棒!
Filter:@WebFilter公共类SitemeshFilter扩展ConfigurableSiteMeshFilter {
@Override
protected void applyCustomConfiguration(SiteMeshFilterBuilder builder) {
System.out.println("in sitemesh filter");
builder.addDecoratorPath("/*", "templates/main.ftl")
.setMimeTypes("text/html")
.addExcludedPath("/javadoc/*")
.addExcludedPath("/brochures/*");
}控制器:
@Controller
public class UserController {
@Autowired
MemberService memberService;
@RequestMapping(value="member/{id}")
public ModelAndView viewMember(@PathVariable("id") int memberId, ModelAndView mv) {
mv.setViewName("member");
ClubMember member = memberService.getClubMember(memberId);
mv.addObject("member", member);
return mv;
}
}主类:
@SpringBootApplication
@ServletComponentScan
@EnableAutoConfiguration(exclude = {ErrorMvcAutoConfiguration.class})
public class ClubManagementApplication {
public static void main(String[] args) {
SpringApplication.run(ClubManagementApplication.class, args);
}
}Application.properties: spring.mvc.view.prefix=/views/
我的模板位于: src/main/resources/templates <-这是我放置sitemesh模板的地方src/main/resources/views <-这是Freemarker页面
发布于 2016-07-09 07:49:02
如果其他人有同样的问题:
模板最终出现在资源/模板中
sitemeshfilter:
@Override
protected void applyCustomConfiguration(SiteMeshFilterBuilder builder) {
builder.addDecoratorPath("/*", "/main.ftl")
.setMimeTypes("text/html", "application/xhtml+xml", "application/vnd.wap.xhtml+xml");
}请注意'/main.ftl‘之前的任何内容
https://stackoverflow.com/questions/37448963
复制相似问题