2016-10-06 7 views
0

Spring MVC에서 웹 애플리케이션을 개발 중이다. 나는 사용자가 양식을 추가했습니다. 고객과 직원의 두 가지 유형의 사용자가 있습니다. 라디오 버튼을 사용하여 사용자 유형이 선택됩니다. 선택한 사용자 유형에 따라 양식의 채워진 데이터를 데이터베이스의 두 테이블로 보내려고합니다. 아무도 내가 선택한 라디오 버튼을 확인하고 그에 따라 필요한 쿼리를 실행하는 방법을 안내 할 수 있습니다. 다음 내 두 개의 라디오 버튼 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 annotation을 사용하여 컨트롤러에 두 개의 라디오 버튼을 가져갔습니다. 이 컨트롤러 메서드 내에서 어떤 라디오 버튼이 선택되었는지 확인할 수 있다면 각 시나리오에 대해 관련 함수를 실행할 수 있습니다.

<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이 코멘트에 언급 한 것처럼 당신이 가진 모든

@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같은 이름을주고 ...이 좀 도와 주 시겠어요

... 
public ModelAndView saveOrUpdate(@ModelAttribute("newUser") User, @RequestParam("radioName") String customer, 
BindingResult validationResult) throws SQLIntegrityConstraintViolationException { 
... 
,536 : 체크 radio button의 값은이 radio buttons의 이름으로 @RequestParam 주석을 사용할 수 있습니다

고객은 이제 라디오 버튼의 값을 전달합니다. 사용자가 직원을 선택한 경우 고객의 값은 "stuff"이며, 사용자가 고객을 선택한 경우 고객의 값은 "고객"이됩니다.

나를 위해 잘 작동합니다.

+0

고마워 .. :) 실수 였어. 잘 됐어. – difna