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