2016-05-25 4 views
0

Ich versuche, Sitemesh (3) Templating mit Spring Boot (4+) mit Java-Annotation-basierte Konfiguration verwenden.Was sollte der Vorlagenpfad sein, wenn Spring Boot und ein Sitemesh-Filter verwendet werden?

Wenn ich die Controller-URL anklicke, wird die Handler-Methode aufgerufen. Der Sitemesh-Filter ist aktiviert (das Debugging beweist das).

Allerdings bekomme ich eine 404, die ich glaube, weil mit der Config ich die Freemarker Vorlage nicht gefunden habe (falscher Pfad irgendwo).

Code folgt, irgendwelche Vorschläge, was ich falsch mache wäre toll!

Filter: @WebFilter public class SitemeshFilter ConfigurableSiteMeshFilter erstreckt {

@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:

@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; 
    } 
} 

Hauptklasse:

@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/

Meine Vorlagen leben in: src/main/resources/templates < - das ist, wo ich die sitemesh Vorlagen gesetzt haben leben src/main/resources/Ausblick < - hier sind die Freemarker Seiten

Antwort

0

Falls jemand anderes gleiche Problem:

Vorlagen in Ressourcen/templates endete

sitemeshfilter:

 @Override 
    protected void applyCustomConfiguration(SiteMeshFilterBuilder builder) { 
     builder.addDecoratorPath("/*", "/main.ftl") 
      .setMimeTypes("text/html", "application/xhtml+xml",      "application/vnd.wap.xhtml+xml"); 
    } 

Beachten Sie nichts vor '/main.ftl'