Я пытаюсь создать простое веб-приложение, которое позволяет пользователям создавать темы и комментировать их. Идея заключалась в том, что после запуска темы пользователь перенаправляется на страницу этой темы.
@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 () .