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

HTTP状态404 Spring MVC传递参数

何勇
2023-03-14

HTTP Status 404-/controller/results.jsp类型状态报告消息/controller/results.jsp描述请求的资源(/controller/results.jsp)不可用。Apache Tomcat/7.0.12

我的web.xml代码:

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

    <!-- Creates the Spring Container shared by all Servlets and Filters -->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <!-- Processes application requests -->
    <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>/home</url-pattern>
        </servlet-mapping>

servlet-context.xml

<!-- DispatcherServlet Context: defines this servlet's request-processing infrastructure -->

    <!-- Enables the Spring MVC @Controller programming model -->
    <annotation-driven />

    <!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources in the ${webappRoot}/resources directory -->
    <resources mapping="/resources/**" location="/resources/" />

    <!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory -->
    <beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <beans:property name="prefix" value="/WEB-INF/views/" />
        <beans:property name="suffix" value=".jsp" />
    </beans:bean>

    <context:component-scan base-package="edu.demidov.controller" />

</beans:beans>
@Controller
public class HomeController extends HttpServlet{

    private static final long serialVersionUID = 4825408935018763217L;  

    private static final Logger logger = LoggerFactory.getLogger(HomeController.class);      

    EducationDaoInterface educationDaoIntfc;

    @RequestMapping(value="/home", method=RequestMethod.GET)
    public ModelAndView  firstActionPage() {    

        return new ModelAndView("home");

    }


    @RequestMapping(value = "/result.jsp", method=RequestMethod.GET)
    public String SecondActionPage(@RequestParam String firstname, Model model) throws IOException {

        model.addAttribute("myname", firstname);

        return "result";

    }
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

Hello form result.jsp

First name: ${myname}

</body>
</html>
<%@ 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 PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

<form name="myform" action="<c:url value="/results.jsp"/>" method="GET">

<input type="text"  name="firstname"/>

<input type="submit"/>

</form>

</body>
</html>

谢了。

共有1个答案

慕宜民
2023-03-14

您有错误的URL映射。

有两种解决办法。

1.

您可以将控制器中SecondActionPage函数的url映射更改为following。

@RequestMapping(value = "/result", method=RequestMethod.GET)
 类似资料:
  • 问题内容: 我使用JavaScript来执行JNLP,最终将执行我的客户端。 我试图通过JavaScript执行将参数传递给JNLP,并在客户端中通过JNLP传递这些参数。 JavaScript正在执行以下URL,例如: 现在,我的JNLP将尝试以这种方式获取参数: 但这没有用。 我无法以这种方式在客户端代码中检索这些参数: JNLP位于APACHE2.2中 知道有什么问题吗? 问题答案: 为了能

  • 下面是给我带来麻烦的文件: 我试图通过路由将新的和传递到我的“feed”组件中。但我收到一条错误消息: 我知道为什么会发生这种情况,但不知道如何将状态传递给我的“feed”组件。在过去的5个小时里,我一直在试图解决这个问题,我变得非常绝望! 请救命!谢谢 下面的答案很有帮助,我感谢athors,但他们不是做到这一点的最简单的方法。在我的例子中,最好的方法是这样的:当您更改路线时,只需向其附加一条消

  • 但是控制台显示一个错误: 未捕获的 DOMException:无法在 “History” 上执行 'pushState':无法克隆 Symbol(react.element)。 这是什么意思?对此我能做些什么?

  • 主要内容:1 1xx:信息,2 2xx:成功,3 3xx:重定向,4 4xx:客户端错误,5 5xx:服务器错误当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。 HTTP状态码的英文为HTTP Status Code。下面是常见的HTTP状态码:  1xx - 这意味着已收到请求,并且该过程正在继续。 2xx - 这意味着已成功接收,理解并接受了该

  • 当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。 HTTP状态码的英文为HTTP Status Code。 下面是常见的HTTP状态码: 200 - 请求成功 301 - 资源(网页等)被永久转移到其它URL 404 - 请求的资源(网页等)不存在

  • 您可以将其他数据作为常规方法参数传递到后台任务。我再次使用下面的例子(希望没有让你厌恶): BackgroundJob.Enqueue(() => Console.WriteLine("Hello, {0}!", "world")); 在常规方法调用中,在执行后台作业期间, Console.WriteLine 方法将使用这些参数。为了参数传递进去,需要先序列化。 使用 了不起的 Newtonsof