Spring MVC Example

Spring MVC Example Commit Details

Date:2011-09-22 20:45:05 (14 years 6 months ago)
Author:Michael Ahlberg
Branch:master
Commit:6b5908944d5e758e7f03c6320edf681cb6bc8e5c
Parents: 3e64be26e30300b0c2bb66e16e8d1cb8c76d2545
Message:Added json view and reformatted source

Changes:
Msrc/main/java/info/ahlberg/spring/controller/ContactController.java (2 diffs)
Msrc/main/java/info/ahlberg/spring/dao/ContactDAOWithJPA.java (1 diff)
Msrc/main/java/info/ahlberg/spring/dao/GenericDAOWithJPA.java (1 diff)
Msrc/main/java/info/ahlberg/spring/domain/Contact.java (2 diffs)
Msrc/main/java/info/ahlberg/spring/service/ContactService.java (1 diff)
Msrc/main/java/info/ahlberg/spring/service/ContactServiceImpl.java (2 diffs)

File differences

src/main/java/info/ahlberg/spring/controller/ContactController.java
11package info.ahlberg.spring.controller;
2import java.util.List;
3
24import info.ahlberg.spring.domain.Contact;
35import info.ahlberg.spring.service.ContactService;
...... 
810import org.springframework.ui.Model;
911import org.springframework.web.bind.annotation.RequestMapping;
1012import org.springframework.web.bind.annotation.RequestParam;
13import org.springframework.web.bind.annotation.ResponseBody;
1114@Controller
1215@RequestMapping("/")
1316public class ContactController {
14    @Autowired
15    private ContactService contactService;
16
17    @RequestMapping("/")
18    String index(Model model) {
19        model.addAttribute("msg", "A nice message");
20
21        model.addAttribute("contacts", contactService.findAll());
17    @Autowired
18    private ContactService contactService;
19
20    @RequestMapping("/")
21    String index(Model model) {
22        model.addAttribute("msg", "A nice message");
23
24        model.addAttribute("contacts", contactService.findAll());
22        return "index";
23    }
25        return "index";
26    }
27    @RequestMapping("/contacts")
28    @ResponseBody List<Contact> contacts(Model model) {
29        return contactService.findAll();
30    }
24    @RequestMapping("/add")
25    String add(@RequestParam String name, Model model) {
26        model.addAttribute("msg", "A nice message");
31    @RequestMapping("/add")
32    String add(@RequestParam String name, Model model) {
33        model.addAttribute("msg", "A nice message");
27        Contact contact = new Contact();
28        contact.setName(name);
29        contactService.save(contact);
34        Contact contact = new Contact();
35        contact.setName(name);
36        contactService.save(contact);
30        model.addAttribute("contacts", contactService.findAll());
37        model.addAttribute("contacts", contactService.findAll());
31        return "index";
32    }
38        return "index";
39    }
3340}
src/main/java/info/ahlberg/spring/dao/ContactDAOWithJPA.java
44import org.springframework.stereotype.Repository;
5
65@Repository
76public class ContactDAOWithJPA extends GenericDAOWithJPA<Contact, Long> implements ContactDAO {
src/main/java/info/ahlberg/spring/dao/GenericDAOWithJPA.java
3333    }
3434    public T loadById(ID id) {
35        if(id == null) {
35        if (id == null) {
3636            return null;
3737        } else {
3838            return entityManager.find(persistentClass, id);
src/main/java/info/ahlberg/spring/domain/Contact.java
1010import javax.persistence.Version;
1111@Entity
12public class Contact implements Serializable {
12public class Contact implements Serializable {
1313    private static final long serialVersionUID = 1L;
1414    @Id
...... 
2323    @Column(nullable = false)
2424    private String name;
25    public Long getId() {
26        return id;
27    }
25    public Long getId() {
26        return id;
27    }
28    public void setId(Long id) {
29        this.id = id;
30    }
28    public void setId(Long id) {
29        this.id = id;
30    }
31    public Long getVersion() {
32        return version;
33    }
31    public Long getVersion() {
32        return version;
33    }
34    public void setVersion(Long version) {
35        this.version = version;
36    }
34    public void setVersion(Long version) {
35        this.version = version;
36    }
37    public String getName() {
38        return name;
39    }
37    public String getName() {
38        return name;
39    }
40    public void setName(String name) {
41        this.name = name;
42    }
40    public void setName(String name) {
41        this.name = name;
42    }
4343}
src/main/java/info/ahlberg/spring/service/ContactService.java
11package info.ahlberg.spring.service;
2import java.util.List;
3
24import info.ahlberg.spring.domain.Contact;
35public interface ContactService {
4    Object findAll();
6    List<Contact> findAll();
5    void save(Contact contact);
7    void save(Contact contact);
68}
src/main/java/info/ahlberg/spring/service/ContactServiceImpl.java
11package info.ahlberg.spring.service;
2import java.util.List;
3
24import info.ahlberg.spring.dao.ContactDAO;
35import info.ahlberg.spring.domain.Contact;
...... 
911@Service
1012public class ContactServiceImpl implements ContactService {
11    @Autowired
12    private ContactDAO contactDAO;
13    @Autowired
14    private ContactDAO contactDAO;
13    @Override
14    public Object findAll() {
15        return contactDAO.loadAll();
16    }
15    @Override
16    public List<Contact> findAll() {
17        return contactDAO.loadAll();
18    }
17    @Override
18    @Transactional
19    public void save(Contact contact) {
20        contactDAO.persist(contact);
21    }
19    @Override
20    @Transactional
21    public void save(Contact contact) {
22        contactDAO.persist(contact);
23    }
2224}

Archive Download the corresponding diff file

Branches