2011-05-24 5 views
-2

Je ne peux pas afficher mai restaurant. I.ve a ma classe contrôleur:Printemps mvc paramètre url

@Controller 
public class RestaurantController extends MultiActionController{ 

    private RestaurantDAO restaurantDAO; 

    public void setRestaurantDAO(RestaurantDAO restaurantDAO) { 
     this.restaurantDAO = restaurantDAO; 
    } 


    @RequestMapping("/restaurant/{restaurantId}") 
    public ModelAndView restaurantid(@PathVariable("contactId") int id, 
     HttpServletRequest request, 
     HttpServletResponse response) throws Exception { 

     Restaurant restaurant = restaurantDAO.findRestaurantById(id); 
     ModelMap modelMap = new ModelMap(); 
     modelMap.addAttribute("restaurant", restaurant); 
     return new ModelAndView("restaurant", modelMap); 
    } 
} 

im ma jsp juste:

<c:out value="${restaurant.name }" 

dans mon ressort servlet.xml:

<bean name="/restaurant/**" class="web.RestaurantController" > 
<property name="restaurantDAO" ref="myRestaurantDAO"/> 
</bean> 

Répondre

5

Parce que vous mêlé restaurantId et contactId

@RequestMapping("/restaurant/{restaurantId}") 
public ModelAndView restaurantid(@PathVariable("contactId") ... 

Je suppose que lorsque vous changez @PathVariable("contactId") en @PathVariable("restaurantId") ça va fonctionner.

Et ajouter @RequestMapping("/restaurant/**") à votre contrôleur:

@RequestMapping("/restaurant/**") 
@Controller 
public class RestaurantController extends MultiActionController{ 

BTW: Qu'est-ce qu'un MultiActionController?

+0

Mon erreur, désolé. Mais cela ne fonctionne toujours pas. La ressource demandée (/ RestFinderWebApp/restaurant/48) n'est pas disponible. – zax

+0

Ajoutez @RequestMapping ("/ restaurant/**") à votre contrôleur et jetez un coup d'oeil aux mappings trouvés (le ressort les imprimera au niveau INFO au démarrage) – Ralph

+0

J'ai changé comme vous me l'aviez dit, mais cela fait encore beaucoup de travail . MultiActionController: import org.springframework.web.servlet.mvc.multiaction.MultiActionController; – zax