Spring не может найти отображение для HTTP-запроса - PullRequest
0 голосов
/ 10 марта 2012

Я пытаюсь создать простое веб-приложение, которое позволяет пользователям создавать темы и комментировать их. Идея заключалась в том, что после запуска темы пользователь перенаправляется на страницу этой темы.

@Controller
public class HomeController {

    @RequestMapping(value = "/create", method = RequestMethod.GET)
    public ModelAndView create(Locale locale, Model model)
    {
         Topic newTopic = new Topic();
         logger.info("HomeControlller: Create");
         List<Tag> tagList = newTopic.getTagLict();
         Hashtable modelData = new Hashtable();
         modelData.put("newTopic", newTopic);
         modelData.put("tagList", tagList);

         return new ModelAndView("create", modelData);

    }

    @RequestMapping(value = "/create", method = RequestMethod.POST)
    public String saveNewTopic(@ModelAttribute("newTopic")Topic topic, BindingResult result, Model model)
    {
         validate(topic, result);
         // Go to the "Show topic@ page
         return "redirect:details/"+service.saveTopic(topic);       
}

    @RequestMapping(value = "/details/(topicId)", method = RequestMethod.GET)
    public ModelAndView details(@PathVariable(value="topicId") int id)
    {
            logger.info("HomeControlller: Details: Found a method");        
            Topic topicById = service.findTopicByID((long) id);
            logger.info("HomeControlller: Details: Performing redirect");
            return new ModelAndView("/topic/", "model", topicById);
     }


}

Но после создания темы я получаю сообщение об ошибке Не найдено сопоставление для HTTP-запроса с URI [/ simpleblog / details / 9] в DispatcherServlet с именем appServlet . И я не могу понять, что не так, потому что HTTP-запросы отображаются с аннотациями. И он работает с функциями create () и saveNewTopic () , но не работает с функцией details () .

1 Ответ

2 голосов
/ 10 марта 2012

Синтаксис для переменной пути: {foo}, а не (foo):

@RequestMapping(value = "/details/{topicId}", method = RequestMethod.GET)
public ModelAndView details(@PathVariable(value="topicId") int id)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...