2016-10-07 73 views
0

我使用Spring 4.和休眠5如何在jsp中将请求从jsp发送到控制器?

我想知道如何将请求从jsp页面传递到控制器。

我喜欢下面的页面。

它越来越错误

*消息/Spring_Hibernate_MVC/forgotPsw.do

描述所请求的资源不可用。*

ForgotPassword.js

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 
<!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=ISO-8859-1"> 
<title>Forgot Password</title> 
</head> 
<body> 
    <div id="DivForgotPsw"> 
     <form action="forgotPsw.do" method="get"> 
      <table> 
       <tr> 
        <th>Enter your email id.</th> 
       </tr> 
       <tr> 
        <td><input type="text" name="email"></td> 
       </tr> 
       <tr> 
        <td><input type="submit" value="Send"></td> 
       </tr> 
      </table> 
    </div> 
    </form> 
</body> 
</html> 

的hibernate.cfg.xml

<servlet> 
     <servlet-name>spring</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <init-param> 
      <param-name>contextConfigLocation</param-name> 
      <param-value>/WEB-INF/spring.xml</param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>spring</servlet-name> 
     <url-pattern>*.do</url-pattern> 
    </servlet-mapping> 

ForgotPswController.java

@Component 
@RequestMapping(name="/") 
public class ForgotPswController { 

    @Autowired 
    private JavaMailSender javaMailSender; 



    public ForgotPswController() { 
     System.out.println(this.getClass().getSimpleName()+" created..."); 
    } 

    @RequestMapping(value="/forgotPsw.do" , method = RequestMethod.GET) 
    public void send(HttpServletRequest request){ 

     MimeMessage message = javaMailSender.createMimeMessage(); 
     MimeMessageHelper helper; 

     try { 
      helper = new MimeMessageHelper(message, true); 
      helper.setSubject("Reset Your Jspiders Account."); 
      helper.setTo(request.getParameter("email")); 
      helper.setText("Hello User", true); 

      javaMailSender.send(message); 

     } catch (MessagingException e) { 


      e.printStackTrace(); 
     } 
    } 
} 

回答

0

首先尝试获得完整的要求进行检查。

String req = request.getQueryString(); 

在此请求中,参数可能会与某些名称空间一起保存。那么你应该知道原因。

使用

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> 
<form:from ... modelAttribute=forgotPsw> 
<form:input path="email"/> 
... 

可能更容易转化形式对象,并获得一些信息。

@RequestMapping(value="/forgotPsw.do" , method = RequestMethod.GET) 
public void send(@ModelAttribute("forgotPsw")ForgotPsw forgotPsw){ 

class ForgotPsw { 

    private String email; 
    //getter and setter 
} 
+0

我的要求它没有来控制器, 我认为这是问题...?怎么解决。 如果请求它未来我如何检查 request.getQueryString(); –

+0

因此,如果我了解您ForgotPassword.js是另一个应用程序。在这种情况下,如果我是你,我会尝试通过这个函数getQueryString调试请求params,那么你应该看看param邮件是否存在。它应该是这样的“[email protected]”。如果你没有,这意味着这个请求可能是错的。 – chmielu

相关问题