2016-04-30 7 views
1

私はSpring MVCを初めて使用しています。ボタンをクリックすると簡単なフォームが作成され、フォームの値はコントローラに送信され、2番目のビューに設定されます。クライアントから送信された要求の構文が正しくありません。 Springで@RequestParamを使用する

コントローラー:

@Controller 
@RequestMapping(value="/admissionform") 
public class StudentAdmissionController { 

    @RequestMapping(value="/form.html", method = GET) 
    public ModelAndView getStudentForm() { 
     ModelAndView model = new ModelAndView("StudentForm"); 
     return model; 
    } 

    @RequestMapping(value="/submit.html", method = POST) 
    public ModelAndView submitStudentForm(@RequestParam("name") String name, 
              @RequestParam("password") String password) { 
     ModelAndView model = new ModelAndView("SubmitForm"); 
     model.addObject("msg", "Name is : "+name + " Password is : " + password); 
     return model; 
    } 
} 

StudentForm:

<%@ 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> 
<title>Student Form</title> 
</head> 
<body>   

     <div class="modal-body" id="main-body"> 
      <form action="submit.html" method="post"> 
       <div> 
         <label>Email address:</label> 
         <input class="form-control" id="email" name="email"> 
       </div> 
       <div > 
         <label for="pwd">Password:</label> 
         <input id="pwd" name="password"> 
       </div> 
       <input type="submit" value="Submit"/> 
      </form> 
     </div>  
</body> 
</html> 

SubmitForm:

しかし、私は、それはここで

The request sent by the client was syntactically incorrect. 

は私のコードがある私にエラーを与えているボタンをクリックすると、

<%@ 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> 
<title>Form Submitted</title> 
</head> 
<body> 
<div>${msg}</div> 
</body> 
</html> 

私がコードで行っている間違いを教えてください。私は感謝しなければならない:)

答えて

0

デフォルトでは、@RequestParamで注釈が付けられたパラメータは必須です。したがって、これらのパラメータはクライアント要求に存在する必要があります。そして、あなたはあなたのからの正確な同じ名前でそれらのパラメータを渡す必要があり

@RequestMapping(...) 
public ModelAndView submitStudentForm(@RequestParam("name") String name, 
             @RequestParam("password") String password) { ... } 

:あなたsubmitStudentForm方法では、namepasswordという名前の2つの必要なパラメータを持っています。

<div> 
    <label for="pwd">Password:</label> 
    <input id="pwd" name="password">  
</div> 

をしかし不幸なnameパラメータのためにそうすることができない:現在、あなたはpasswordパラメータを渡しています。詳細情報については

div> 
    <label>Email address:</label> 
    <input class="form-control" id="email" name="name"> 
</div> 

、あなたがSpring documentationをチェックアウトすることができます:私はあなたがnameからemailパラメータの名前を変更する必要がありますね。

+1

ありがとうございます:) – Asad

関連する問題