2016-10-06 788 views
0

Spring MVCでWebアプリケーションを開発しています。私はユーザーのフォームを追加しました。顧客とスタッフの2種類のユーザーがいます。ラジオボタンを使用してユーザータイプが選択されます。選択したユーザータイプに応じて、フォームの入力データをデータベースの2つのテーブルに送信したいとします。どのように選択されたラジオボタンをチェックし、それに応じて必要なクエリを実行するかを誰にでも案内できます。 後、私の2つのラジオボタンのJSPであるSpring MVCでラジオボタンの選択値を取得する方法

 <label class="radio-inline"> 
     <input type="radio" name="customer" id="customer" value="customer" checked="checked"/>Customer 
    </label> 
    <label class="radio-inline"> 
     <input type="radio" name="staff" id="staff" value="staff"/>Staff Member 
    </label> 

後には、フォームの提出のための私のコントローラメソッドです。 @RequestParamアノテーションを使用して2つのラジオボタンをコントローラに送りました。このコントローラメソッドの中でどのラジオボタンが選択されているかを確認できたら、それぞれのシナリオで関連する関数を実行することができます。

<label class="radio-inline"> 
    <input type="radio" name="radioName" id="customer" value="customer" checked="checked"/>Customer 
</label> 
<label class="radio-inline"> 
    <input type="radio" name="radioName" id="staff" value="staff"/>Staff Member 
</label> 

を取得するには:誰もがM. Deinumコメントで述べたように、あなたのradio buttons同じ名前にを与える必要があり、すべての

@RequestMapping(value="/addCustomer",method = RequestMethod.POST) 
public ModelAndView saveOrUpdate(@ModelAttribute("newUser") User newUser,@RequestParam("customer") String customer, 
           @RequestParam("staff") String staff,BindingResult validationResult) throws SQLIntegrityConstraintViolationException { 

    if (validationResult.hasErrors()) { 
     new ModelAndView("userAdd", "command", newUser); 
    } 

if(staff selected){ 
    boolean usernameUnique=staffRepository.checkUsernameUnique(newUser); 
    if(usernameUnique) { 
     int i = staffRepository.add(newUser); 
     if (i == 0) 
      return new ModelAndView(new RedirectView("stangeFailurePage")); 
     else { 
      return new ModelAndView(new RedirectView("successPage")); 
     } 
    }else{ 
     validationResult.rejectValue("username", "error.username.exists", "The username is already in use."); 
     new ModelAndView("userAdd", "command", newUser); 
    } 
} 
if(customer selected){ 
    // do whatever related to that 
} 
    return new ModelAndView(new RedirectView("add")); 
} 
+0

間違った方法でラジオボタンを使用しています。彼らは最終的にバックエンドに送信するパラメータの名前である同じ名前を持つ必要があります。その方法は実際のラジオボタンでもあります。 –

答えて

0

まず...これで私を助けてもらえ

... 
public ModelAndView saveOrUpdate(@ModelAttribute("newUser") User, @RequestParam("radioName") String customer, 
BindingResult validationResult) throws SQLIntegrityConstraintViolationException { 
... 
:確認 radio buttonの値は、あなたは radio buttonsの名前で @RequestParamアノテーションを使用することができます

お客様はラジオボタンの値を保持します。ユーザがの顧客の値が "stuff"になる場合、ユーザがの顧客の値を選択した場合、そのユーザはスタッフを選択した場合、 "customer"になります。

私にとってうまく動作します。

+0

ありがとうございました.. :)それは間違いでした...今は正常に動作しています – difna

関連する問題