2015-12-10 1 views
2
@Controller 
@RequestMapping("lookup") 
public class LookupController { 

    @ModelAttribute("status") 
    public List<String> status() { 
     List<String> lstStatus = new ArrayList<String>(); 
     lstStatus.add("Open"); 
     lstStatus.add("Reserved"); 
     lstStatus.add("Parked"); 
     lstStatus.add("Inactive"); 
     return lstStatus; 
    } 

} 



@Controller 
@RequestMapping("parkingSlot") 
public class ParkingSlotController { 

    @RequestMapping("edit/{slotId}") 
    public String edit(@PathVariable Integer slotId, Map<String, Object> model)  { 
     ParkingSlot parkingSlot = parkingSlotDao.get(slotId); 
     model.put("parkingSlot", parkingSlot); 

     return "ParkingSlotForm"; 
    } 


} 

ParkingSlotForm.jsp@ModelAttribute au niveau de la méthode. Accédez à cela depuis un autre contrôleur. C'est possible?

<form:form action= "${root}parkingSlot/save" modelAttribute="parkingSlot" method="post" > 

      <tr> 
       <td>Status:</td> 
       <td> 
        <form:select path="status" > 
         <form:options items="${status}" /> 
        </form:select> 
        </td> 
      </tr> 

Je suis incapable de voir le statut dropdownlist ici. Je vois juste une liste déroulante vide sans remplir les éléments. Si je déplace cette méthode @ModelAttribute ("status") dans ParkingSlotController, cela fonctionne correctement. Mais ce n'est pas celui que je voulais. Mais mon idée est de garder toutes les listes déroulantes communes dans un contrôleur centralisé. Comment est-ce que je fais cela?

Répondre

0

Ecrivez un controlleradvice et ajoutez-y les méthodes avec modelattributes.

@ControllerAdvice est une spécialisation d'un composant qui est utilisé pour définir @ExceptionHandler, @InitBinder et méthodes @ModelAttribute qui s'appliquent à toutes les méthodes @RequestMapping.

+0

Puis-je savoir pourquoi il n'est pas rempli? –

+0

le LookupController a un requestmapping avec "lookup" mais vous appelez "parkingSlot" dans votre formulaire. comment le printemps devrait savoir utiliser le lookupcontroller? –