当前位置: 首页 > 知识库问答 >
问题:

Spring MVC 映射不起作用:PageNotFound

宗政金鹏
2023-03-14

当我访问localhost:8080/home-我得到:

WARN : org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/home] in DispatcherServlet with name 'appServlet'

当我访问localhost:8080/或localhost:8080/index时,看起来一切正常。

为什么一条路行得通,而另一条行不通?

还有一件事让我困惑:localhost:8080/homepage。html-返回我的主视图。

所以我的项目在这里:https://github.com/IRus/jMusic

我的web.xml

<!-- Base servlet handles all requests to the application. -->
<servlet>
    <servlet-name>appServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>appServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

servlet上下文。xml-i使用瓦片

<annotation-driven/>

<resources mapping="/resources/**" location="/resources/"/>

<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <beans:property name="prefix" value="/WEB-INF/views/"/>
    <beans:property name="suffix" value=".jsp"/>
    <beans:property name="order" value="1" />
</beans:bean>

<beans:import resource="controllers.xml"/>
<beans:import resource="tiles.xml" />
<beans:import resource="i18n.xml"/>
<beans:import resource="themes.xml"/>

瓷砖.xml

<bean id="tilesviewResolver" class="org.springframework.web.servlet.view.tiles2.TilesViewResolver">
        <property name="order" value="0"/>
</bean>

<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
    <property name="definitions">
        <list>
            <value>/WEB-INF/views/tiles-definitions.xml</value>
        </list>
    </property>
</bean>

错误控制器

@Controller
public class ErrorController {

    @RequestMapping("/403")
    public String error403() {
        return "403";
    }

    @RequestMapping("/404")
    public String error404() {
        return "404";
    }

}

用户控制器

@Controller
public class UserController {

    @Autowired
    private UserService userService;

    @RequestMapping("/")
    public String index() {
        return "redirect:/index";
    }

    @RequestMapping("/home")
    public String home() {
        return "home";
    }

    @RequestMapping("/login")
    public String login() {
        return "login";
    }

    @RequestMapping("/index")
    public String listUsers(Map<String, Object> map) {

        map.put("user", new User());
        map.put("userList", userService.listUser());

        return "user";
    }

    @RequestMapping(value = "/add", method = RequestMethod.POST)
    public String addUser(@ModelAttribute("user") User user,
                             BindingResult result) {

        userService.addUser(user);

        return "redirect:/index";
    }

    @RequestMapping("/delete/{idUser}")
    public String deleteUser(@PathVariable("idUser") Long idUser) {

        userService.removeUser(idUser);

        return "redirect:/index";
    }
}

此处记录:https://gist.github.com/IRus/2ac97c66070001247011

日志中的有趣瞬间:

将URL路径[/homepage.html]映射到我添加的处理程序“userController”中,并删除了控制器中的@RequestMapping,但它仍然有效

我在Idea 12.0.4工作

共有1个答案

权浩邈
2023-03-14

问题出在缓存/IDE中。

部署项目时,类文件未更新。

我第一次遇到这样的麻烦。只需重新启动IDE并清理tomcat网络应用程序文件夹(从此处删除我的项目文件)。

现在一切都按预期进行了。

 类似资料:
  • 问题内容: 我正在尝试为各个字段使用不同的分析器设置ElasticSearch索引。但是,我似乎找不到一种设置特定于字段的分析器的方法。这是我创建(测试)索引的方法: 如果我正确阅读了文档,则应创建类型为“ tweet”的索引“ twitter”,并且应通过雪球词根分析器分析“ message”字段的内容。为了对此进行测试,我尝试了以下查询: 如果我没记错的话,那应该会受到打击,因为战斗是战斗的源

  • 我已经定义了对象HomeContentDTO和SubscriberUpsertDTO的映射 下面是这两个对象的映射配置 HomeContentDTO中的所有映射值都没有复制到SubscriberUpsertDTO。有人知道原因吗?

  • 在代码中使用XSLT 2.0的字符映射功能时,我遇到了以下错误。 名称空间中的元素“样式表”http://www.w3.org/1999/XSL/Transform'命名空间中的子元素'character map'无效'http://www.w3.org/1999/XSL/Transform“是的 这是我的XSLT声明 请提供有关如何在XSLT中使用字符映射的帮助。

  • 我使用fasterxml jackson进行json序列化。我已将日期序列化程序编写为 但它没有被调用。然而,其他Jackson序列化程序运行良好。 现在日期正被正确序列化。但是现在有效的JSON等效字符串并没有像这里提到的那样转换为JSON。

  • http://some-amazon-link:8080/the-war-name/login 现在我正在纠结如何在Spring MVC项目中添加“/the-war-name/”以及在哪里添加“/the-war-name/”。 它在 null

  • 这是我的HelloController.java文件 这是我的第一个.jsp文件 请谁能帮我找到这个错误。运行时出错... servlet mvc-dispatcher的messageservlet.init()引发异常 说明服务器遇到内部错误,导致它无法完成此请求。 异常 根本原因 注意根本原因的完整堆栈跟踪可在Apache Tomcat/7.0.65日志中获得。