복붙노트

[SPRING] 봄부터 컨트롤러에서 프런트 엔드로 데이터를 전달하는 방법

SPRING

봄부터 컨트롤러에서 프런트 엔드로 데이터를 전달하는 방법

나는 봄에 새로운 응용 프로그램을 만듭니다. 3.0 나는 annotation spring을 사용하고있다.

내 컨트롤러 메서드에서 JSP로 목록에 반환하고 싶습니다. 이 목록은 선택 상자에 표시됩니다. 다음은 컨트롤러 및 JSP 부분의 코드입니다. 이 점을 이해하도록 도와주세요.

public String showUserForm(ModelMap model)  
{       
  User user = new User();
  model.addAttribute(user);
  List<String> lookingfor=service.getOptions();
  //want to send this "lookingfor" to the jsp       
  return "welcome";     
}

및 JSP

<td>    
  <form:select path="lookingfor">
  <form:option value="0" label="Select" /> 
  <form:options items="${lookingfor}" itemValue="lookingfor" itemLabel="lookingfor" />                 </form:select>           
</td>

모델에서 사용자를 추가하는 동안 잘 작동하지만 lookfor 속성을 추가 할 때. model.addAttribute ( "lookingfor", lookingfor);

해결법

  1. ==============================

    1.ModelMap 객체에 lookingFor 목록을 속성으로 추가해야합니다.

    ModelMap 객체에 lookingFor 목록을 속성으로 추가해야합니다.

    model.addAttribute("lookingfor", lookingfor);
    

    또한 itemValue 및 itemLabel은 모두 lookingFor 목록의 속성을 참조하기 때문에 "itemValue"및 "itemLabel"속성의 사용법을 확인하십시오. 당신은 두 가지 모두에서 같은 가치를 사용하고 있습니다.

  2. ==============================

    2.이런 식으로도 사용할 수 있습니다.

    이런 식으로도 사용할 수 있습니다.

    @RequestMapping("get_vendor_tests.htm")
        public ModelAndView getVendorTests(@RequestParam int vendorId,Map<String, Object> map){
            try {
                map.put("vendor", vendorService.getVendor(vendorId));
                return new ModelAndView("vendor_tests","message",map);
            } catch (Exception e) {
                // TODO Auto-generated catch block
                //e.printStackTrace();
                logger.error("In vendor tests for vendor Id:"+vendorId+"",e);
                return new ModelAndView("error","message", e);
            }
    
        }
    
  3. ==============================

    3.모델을 사용하여 목록을 다시 전달하십시오.

    모델을 사용하여 목록을 다시 전달하십시오.

    public String showUserForm(ModelMap model)  {       
      User user = new User();       
      model.addAttribute(user);
      //want to send this "lookingfor" to the jsp           
      List<String> lookingfor=service.getOptions();
      model.addAttribute("lookingFor", lookingFor);                 
      return "welcome";     
    }
    

    귀하의 JSP 디스플레이에서 다음과 같은 옵션을 :

      <form:select path="lookingFor">
          <form:option value="-" label="--Please Select"/>
          <form:options items="${lookingFor"}"/>
      </form:select>
    
  4. ==============================

    4.ModelAndView를 반환 할 수도 있습니다.

    ModelAndView를 반환 할 수도 있습니다.

    e.

    public ModelAndView showUserForm()  
    {  
      mv= new ModelAndView("welcome");     
      User user = new User();
      mv.getModel.put("user",user);
      List<String> lookingfor=service.getOptions();
      //want to send this "lookingfor" to the jsp 
      mv.getModel().put("lookingfor",lookingfor);      
      return mv;     
    }
    

    편집 : 아래 코멘트에 대한 응답으로 itemValue보세요 이것은 당신의 lookingfor 객체의 속성 중 하나 여야합니다.이 국가 목록 예제를보십시오.

     <form:options items="${countryList}" itemValue="code" itemLabel="name"/>
    

    여기서 list는 국가 객체 목록이고 code와 name은 해당 국가 객체의 속성입니다.

    놀이

    그래서 jsp에서 할 수 있습니다.

    <c:forEach var="item" items="${lookingfor}">
     <form:option value="${item}"/>
    </c:forEach>
    
  5. from https://stackoverflow.com/questions/10015804/how-to-pass-data-from-controller-to-front-end-in-spring by cc-by-sa and MIT license