2016-10-06 9 views
0

Я разрабатываю веб-приложение в Spring MVC. У меня есть пользовательская форма. Доступны два типа пользователей: Клиент и Персонал. Тип пользователя выбирается с помощью переключателей. Согласно выбранному типу пользователя, я хочу отправить заполненные данные в форму на две таблицы в базе данных. Может ли кто-нибудь указать мне, как проверить выбранный переключатель и соответственно выполнить требуемый запрос. Ниже моя кнопка два радио JSPsКак получить выбранное значение радио кнопки в 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. Если бы я мог проверить, какая радиокнопка выбрана внутри этого метода контроллера, я могу выполнить соответствующие функции для каждого сценария. Может кто-нибудь, пожалуйста, помогите мне с этим ...

@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

Прежде всего, вы должны дать свой radio buttons в такое же имя, как М. Deinum упоминается в комментариях:

<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> 

Чтобы получить значение проверяемого radio button вы можете использовать @RequestParam аннотацию с именем radio buttons:

... 
public ModelAndView saveOrUpdate(@ModelAttribute("newUser") User, @RequestParam("radioName") String customer, 
BindingResult validationResult) throws SQLIntegrityConstraintViolationException { 
... 

Клиент теперь несет значение переключателя. Если выбранным пользователем персоналом значение , то заказчик будет «наполнителем», если пользователь выбрал клиента, значение «» клиент будет «заказчиком».

Работы хорошо для меня.

+0

Спасибо .. :) это была ошибка ... сейчас работает нормально – difna

Смежные вопросы