2015-11-15 3 views
2

Привет всем, я пытаюсь запустить простое приложение для весенней игры. И попытка просмотра базового html, но проблемы с отображением страницы. Я могу видеть только строку в браузере, но не фактическое содержимое html. Пожалуйста, скажите мне, что я сделал не так.Устранение неполадок тимелеафа с пружинным ботинком

TestController.java:

@Controller 
public class TestController { 

    @RequestMapping(value="/person") 
    @ResponseBody 
    public String intro(){ 
     System.out.println("HH"); 
     return "index"; 
    } 
} 

MainApplication.java:

@SpringBootApplication 
@ComponentScan(basePackages = "pathToMyControllerFolder") 
public class MainApplication { 

    public static void main(String[] args) { 

      SpringApplication.run(MainApplication.class, args); 
    } 
} 

создал index.html в/rsesources/папка шаблона, как было упомянуто на весеннем документ: index.html:

<!DOCTYPE html> 
<head lang="en"> 

    <title>Spring Framework Guru</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 
</head> 
<body> 
<h1>Hello</h1> 

<h2>Fellow Spring Framework Gurus!!!</h2> 
</body> 
</html> 

Но я не могу принять содержимое html, а скорее индекс строки. Раньше была ошибка метки whitePage и исправлена ​​ее добавлением @ComponentScan, но теперь она отображается только с индексом, а не с фактическим содержимым html.

И когда я проверил данные журнала на консоли я заметил это:

2015-11-15 13:22:51.442 INFO 11460 --- [lication.main()] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest) 
2015-11-15 13:22:51.442 INFO 11460 --- [lication.main()] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest) 

ответ

3

Снимите @ResponseBody аннотацию. С помощью этой аннотации все, что вы возвращаете с контроллера, является телом ответа. В вашем случае вы возвращаете строку index, так что это весь тело ответа. Удаление аннотации приведет к тому, что строка index будет интерпретирована как имя вида.

+0

большое спасибо. Это сработало. Итак, если вы хотите передать переменную в мое представление и получить ее с помощью html, я не должен комментировать @ResponseBody, но с моделью и возвращать представление, которое нужно отобразить правильно? –

+0

@ EmyItegbe Право. Вы можете добавить модель в качестве атрибута метода контроллера и поместить в нее некоторые вещи. Затем просто верните имя представления, так как String: public String intro (модель модели) { model.addAtribute ("attributeName", "attributeValue"); return "index"; } – snw

Смежные вопросы