Jsp SPRING:找不到URI为的HTTP请求的映射

Jsp SPRING:找不到URI为的HTTP请求的映射,jsp,redirect,spring-mvc,Jsp,Redirect,Spring Mvc,这是我面临的错误的屏幕截图 问题是,忘记密码再次附加到URL中。(请参阅所附图像的地址栏) 我的控制器如下: @Controller @RequestMapping(value="/forgot-password") public class ControllerForgotPassword { @RequestMapping(value = "/email", method = RequestMethod.POST) public ModelAndView sendMail(Http

这是我面临的错误的屏幕截图

问题是,忘记密码再次附加到URL中。(请参阅所附图像的地址栏)

我的控制器如下:

@Controller
@RequestMapping(value="/forgot-password")
public class ControllerForgotPassword {
@RequestMapping(value = "/email", method = RequestMethod.POST)
    public ModelAndView sendMail(HttpServletRequest request) {
        String email = (String) request.getParameter("email");
        boolean flag=serviceForgotPassword.checkEmail(email);
        ModelAndView modelAndView = new ModelAndView();
        if(flag)
        {
            modelAndView.addObject("message", "Mail has been sent to your mail box");
            modelAndView.setViewName("forgot-password-sucess");
            return modelAndView;
        }
        else
        {
            modelAndView.addObject("message", "Please Enter Valid email address");
            modelAndView.setViewName("forgot-password");
            return modelAndView;
        }
    }
}
忘记密码.jsp内容如下:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fmt"
    uri="http://java.sun.com/jsp/jstl/fmt" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Forgot-Password</title>
</head>
<body>
<p style="color:red;">${message}</p>
<form action="forgot-password/email" method="POST">
<input type="text" name="email"/>
<input type="submit" value="Send Mail">
</form>
</body>
</html>

忘记密码

${message}

我尝试使用
modelAndView.setViewName(“重定向:/forget password success”)sendMail
方法中使用code>,但是我无法从控制器接收消息

编辑:

如果我添加了
这是我的上下文/项目名称,那么它就可以正常工作

是否需要在from操作中的所有位置添加上下文名称以及控制器映射

我不能在表单操作中仅使用
忘记密码/电子邮件

请帮忙

问候,


Arun

此表单操作必须是绝对的,才能与控制器匹配。它当前正在指定相对路径

<form action="/forgot-password/email" method="POST">
              |
           add this leading slash

|
添加此前导斜杠
编辑:仅当应用程序位于根上下文时,此操作才有效

如果应用程序部署到不同的上下文中,则还需要将上下文添加到表单的action属性中

更好的方法是保留相对路径,并在页面上使用HTML
标记,该标记应包含上下文-请参阅。我倾向于在JSP中使用以下内容编写Spring应用程序

<base href="${pageContext.request.scheme}://${pageContext.request.serverName}:${pageContext.request.serverPort}${pageContext.request.contextPath}/">


这样,页面中的相对路径就可以自然地根据正确的上下文解析,无论上下文在哪里。

此表单操作必须是绝对的,以匹配您的控制器。它当前正在指定相对路径

<form action="/forgot-password/email" method="POST">
              |
           add this leading slash

|
添加此前导斜杠
编辑:仅当应用程序位于根上下文时,此操作才有效

如果应用程序部署到不同的上下文中,则还需要将上下文添加到表单的action属性中

更好的方法是保留相对路径,并在页面上使用HTML
标记,该标记应包含上下文-请参阅。我倾向于在JSP中使用以下内容编写Spring应用程序

<base href="${pageContext.request.scheme}://${pageContext.request.serverName}:${pageContext.request.serverPort}${pageContext.request.contextPath}/">


这样,页面中的相对路径就可以自然地根据正确的上下文解析,无论上下文在哪里。

使用
在地址栏
中的URL生成404未找到错误http://localhost:8080/forgot-密码/电子邮件
。但是如果我添加
这是我的上下文/项目名称,那么它就可以正常工作。我是否需要在from操作中的所有位置添加上下文名称以及控制器映射。我不能使用忘记密码/电子邮件吗?好的,我明白。对不起,我错过了图片中的上下文。我已经更新了我的答案。使用
会在地址栏
http://localhost:8080/forgot-密码/电子邮件
。但是如果我添加
这是我的上下文/项目名称,那么它就可以正常工作。我是否需要在from操作中的所有位置添加上下文名称以及控制器映射。我不能使用忘记密码/电子邮件吗?好的,我明白。对不起,我错过了图片中的上下文。我已经更新了我的答案。