gpt4 book ai didi

java - Spring MVC 4.1.7 警告 : No mapping found for HTTP request with URI [/user] in DispatcherServlet

转载 作者:太空宇宙 更新时间:2023-11-04 13:39:03 28 4
gpt4 key购买 nike

我正在尝试链接到注释定义的 Java Controller RequestMapping。具体来说, localhost:8080/user 和 localhost:8080/signin

索引页面加载得很好,但这不是 Controller 的原因。我一定是错过了一些愚蠢的事情。我一直在堆栈溢出上上下下寻找解决方案,但到目前为止没有任何效果。

对此警告最流行的答案似乎是添加上下文:组件扫描、mvc:注释驱动,甚至只是命名问题。看来我已经在 xml 中完成了所有必要的配置,然后还有一些。我是否遗漏了有关项目结构的信息?或者 url 模式匹配?有人提到 jSTL 并为 url 添加 c:tags,但这也不起作用。

我正在尝试运行所有最新版本,也许有问题?我最初在设置环境以使用 webapp 3.1 时遇到了麻烦。大部分配置都是通过 spring sts 工具自动完成的。

  • Java 8
  • Tomcat 8
  • 网络应用 3.1
  • Maven 4.0
  • STS 3.7.0

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>group</groupId>
<artifactId>artifact</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>AppName</name>
<description>App Desc</description>

<!-- custom properties -->
<properties>
<spring.version>4.1.7.RELEASE</spring.version>
</properties>

<dependencies>
<!-- spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>

<!-- j2ee -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>

<!-- logging -->
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>

<!-- testing -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>

<build>
<finalName>InstagramPUE</finalName>
<sourceDirectory>src/main/java</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<warSourceDirectory>webapp</warSourceDirectory>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
</plugin>
</plugins>
</build>
</project>

web.xml

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="igpue" version="3.1">

<!-- app config -->
<display-name>App Display Name</display-name>
<description>App Desc</description>

<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

<!-- app context -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/app-context.xml</param-value>
</context-param>

<!-- servlet config -->
<servlet>
<servlet-name>mvc-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/mvc-dispatcher-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>/</url-pattern>
<url-pattern>/signin</url-pattern>
<url-pattern>/user</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.gif</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.jpg</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.png</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.txt</url-pattern>
</servlet-mapping>
</web-app>

mvc-dispatcher-servlet.xml

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.1.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd">

<!-- mvc config -->
<mvc:annotation-driven />
<mvc:resources location="/resources/" mapping="/resources/**" />

<!-- scan for controller -->
<context:component-scan base-package="abnd.igpue.controller" />

<!-- bean config -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>

</beans>

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!doctype html>
<html>
<head>
<title>Title</title>
<meta charset="utf-8" />
<meta http-equiv="Content-Type" content="text/html" />
<link href="<c:url value='/resources/css/style.css' />" rel="stylehseet" type="text/css" />
</head>
<body>
<!-- html -->
<div id="page">
<div id="header">
<div id="title"><span>Title</span></div>
</div>
<div id="content">
<div id="signIn">
<c:url value="/signin" var="signInLink" />
<div id="signInLink"><a href="${signInLink}">Sign in to Instagram</a></div>
<c:url value="/user" var="userLink" />
<div id="userpage"><a href="${userLink}">User Page</a></div>
</div>
</div>
</div>
<!-- js -->
<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
</body>
</html>

User.java

package abnd.igpue.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class User {

@RequestMapping(value = "/signin")
public String signIn() {

// if the signin was successful redirect to user page

return "redirect:user";
}

@RequestMapping(value = "/user")
public ModelAndView userHome() {
ModelAndView mav = new ModelAndView("/jsp/user.jsp");
mav.setViewName("User");

String message = "<br><div>"
+ "<h1>Hello World</h1></div><br><br>";

mav.addObject("message", message);

return mav;
}
}

最佳答案

我已经让它工作了。我废弃了现有的代码,并从头开始完全重建它。我在上一个项目中在这两个堆栈溢出帖子(如下)之间发现了一些问题,但即使在新项目开始工作后,我也无法成功更新我最初提出的代码。我一定错过了一些愚蠢的事情。

资源

这里有一篇文章详细介绍了如何 Using <mvc:resources .../> in spring 3 causes all other views to stop working这里的另一篇文章详细介绍了如何 Add css in spring mvc

我已将入门 Spring Web MVC 项目上传到我的 github!

如果有人感兴趣,就来吧。您可以下载并导入为 Maven 项目。 https://github.com/BorysHN/SpringMVCSkeleton

关于java - Spring MVC 4.1.7 警告 : No mapping found for HTTP request with URI [/user] in DispatcherServlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31395822/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com