java - Spring找不到HTTP请求的映射

标签 java spring spring-mvc

我正在尝试创建一个简单的网络应用程序,它允许用户创建主题并对其进行评论。这个想法是,启动一个主题后,用户被重定向到该主题的页面。

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


}

但是在创建主题后,我收到错误在名称为“appServlet”的 DispatcherServlet 中未找到带有 URI [/simpleblog/details/9] 的 HTTP 请求的映射。我不明白出了什么问题,因为 HTTP 请求是用注释映射的。它适用于 create()saveNewTopic() 函数,但不适用于 details() 函数。

最佳答案

路径变量的语法是{foo},而不是(foo):

@RequestMapping(value = "/details/{topicId}", method = RequestMethod.GET)
public ModelAndView details(@PathVariable(value="topicId") int id)

关于java - Spring找不到HTTP请求的映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9645215/

相关文章:

java - 使用 Gson 将 JSON 数组解析为 Java 列表

Java Spring Web Application 在 Debug模式下启动缓慢

java - Apache Cassandra 的 Spring Data 将 java.time.LocalDateTime 转换为 UTC

spring - 每次重新加载时 % 符号在 URL 中编码为 %25

java - 将对象从 Spring HandlerInterceptor 传递到 Servlet Filter

java - 从文件中读取特殊字符 - Java

java - java方法中的字符串索引超出范围错误

java - Spring boot MVC 模板 - tomcat7 给出 404 错误

java - 避免算术溢出

java - 在已有的类中实现 Spring 事务处理