package org.vaelen.contactmanager.web;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import org.vaelen.contactmanager.ContactRepository;
import org.vaelen.contactmanager.model.Contact;
@Controller
public class ContactController {
private ContactRepository contactRepository;
@Resource
public void setContactRepository(ContactRepository contactRepository) {
this.contactRepository = contactRepository;
}
@RequestMapping("/index.html")
public ModelAndView index() {
return new ModelAndView("index");
}
@RequestMapping("/contact/{contactId}.xml")
public ModelAndView loadContact(@PathVariable("contactId") String contactId) {
try {
Contact contact = contactRepository.loadContact(contactId);
ModelAndView modelAndView = new ModelAndView("content");
modelAndView.addObject(contact);
return modelAndView;
} catch (Exception ex) {
return new ModelAndView("error", "message", ex);
}
}
@RequestMapping("/contacts.xml")
public ModelAndView listContacts() {
try {
List<Contact> contacts = contactRepository.listContacts();
ModelAndView modelAndView = new ModelAndView("content");
modelAndView.addObject(contacts);
return modelAndView;
} catch (Exception ex) {
return new ModelAndView("error", "message", ex);
}
}
}