Note that there are some explanatory texts on larger screens.

plurals
  1. POSpring MVC URL Mappings
    primarykey
    data
    text
    <p>Hi I am creating a spring mvc app. The spring context seems to be mapping the controller methods to wrong urls.</p> <p>I've following controllers:</p> <p>HelloWorldController</p> <pre><code>package com.springapp.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.ModelAndView; @Controller @RequestMapping("/hello") public class HelloWorldController { @RequestMapping(method = RequestMethod.GET) public ModelAndView helloWorld() { String message = "Hello World, Spring 3.0!"; return new ModelAndView("hello", "message", message); } } </code></pre> <p>ContactsController</p> <pre><code>package com.springapp.controller; import com.springapp.form.Contact; import com.springapp.service.ContactService; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.SessionAttributes; import org.springframework.web.servlet.ModelAndView; @Controller @RequestMapping("/contacts") public class ContactsController { @Autowired private ContactService contactService; @RequestMapping(method = RequestMethod.GET) public String listContacts(Model map) { map.addAttribute("contact", new Contact()); map.addAttribute("contactList", contactService.listContacts()); return "contact"; } @RequestMapping(value="{contactId}", method=RequestMethod.GET) public String showContact(@PathVariable("contactId") Integer contactId) { contactService.getContact(contactId); return "redirect:/contacts"; } @RequestMapping(value = "/add", method = RequestMethod.POST) public String addContact(@ModelAttribute("contact") Contact contact, BindingResult result) { contactService.addContact(contact); return "redirect:/contacts"; } @RequestMapping("/{contactId}/delete") public String deleteContact(@PathVariable("contactId") Integer contactId) { contactService.removeContact(contactId); return "redirect:/contacts"; } } </code></pre> <p>However the spring context is mapping them as:</p> <pre><code>INFO: Mapped URL path [/contacts/new] onto handler 'contactsController' INFO: Mapped URL path [/contacts/new.*] onto handler 'contactsController' INFO: Mapped URL path [/contacts/new/] onto handler 'contactsController' INFO: Mapped URL path [/contacts/addContact] onto handler 'contactsController' INFO: Mapped URL path [/contacts/addContact.*] onto handler 'contactsController' INFO: Mapped URL path [/contacts/addContact/] onto handler 'contactsController' INFO: Mapped URL path [/contacts/delete/{contactId}] onto handler 'contactsController' INFO: Mapped URL path [/contacts/delete/{contactId}.*] onto handler 'contactsController' INFO: Mapped URL path [/contacts/delete/{contactId}/] onto handler 'contactsController' INFO: Mapped URL path [/hello] onto handler 'helloWorldController' INFO: Mapped URL path [/hello.*] onto handler 'helloWorldController' INFO: Mapped URL path [/hello/] onto handler 'helloWorldController' </code></pre> <p>Where is it getting these <code>new</code> and <code>addContact</code> patterns? Also the mapping <code>/contacts</code> is missing.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload