2016-10-07 6 views
0

私はSpring 4とHibernate 5を使用しています。jspからSpring 4のコントローラにリクエストを送信する方法は?

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で要求パラメータをデバッグしようとすると、paramメールが存在するかどうかを確認する必要があります。これは "[email protected]"のようなものです。あなたがそれを持っていなければ、sthがこの要求に間違っているかもしれないことを意味します。 – chmielu

関連する問題