// Path: app/src/main/java/de/codecentric/dao/FeedbackDao.java
// public interface FeedbackDao {
// 
//     public void save(Feedback feedback);
// 
//     public List<Feedback> getFeedbackList();
// }
// 
// Path: app/src/main/java/de/codecentric/domain/Feedback.java
// @Entity(name = "feedback")
// @NamedQueries({ @NamedQuery(name = "findFeedback", query = "from feedback order by timestamp desc") })
// public class Feedback {
// 
//     @Id
//     @GeneratedValue(strategy = GenerationType.AUTO)
//     private long id;
// 
//     private String userName;
//     @Lob
//     private String feedbackComment;
// 
//     @Temporal(TemporalType.TIMESTAMP)
//     private Date timestamp;
// 
//     public long getId() {
//         return id;
//     }
// 
//     public void setId(long id) {
//         this.id = id;
//     }
// 
//     public String getUserName() {
//         return userName;
//     }
// 
//     public void setUserName(String userName) {
//         this.userName = userName;
//     }
// 
//     public String getFeedbackComment() {
//         return feedbackComment;
//     }
// 
//     public void setFeedbackComment(String feedbackComment) {
//         this.feedbackComment = feedbackComment;
//     }
// 
//     public Date getTimestamp() {
//         return timestamp;
//     }
// 
//     public void setTimestamp(Date timestamp) {
//         this.timestamp = timestamp;
//     }
// 
// }
// 
// Path: app/src/main/java/de/codecentric/model/FeedbackFormData.java
// public class FeedbackFormData {
// 
//     private String id;
//     private String name;
//     private String feedbackContent;
// 
//     public String getFeedbackContent() {
//         return feedbackContent;
//     }
// 
//     public void setFeedbackContent(String feedbackContent) {
//         this.feedbackContent = feedbackContent;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public String getId() {
//         return id;
//     }
// 
//     public void setId(String id) {
//         this.id = id;
//     }
// 
// }


import java.util.Date;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
import de.codecentric.dao.FeedbackDao;
import de.codecentric.domain.Feedback;
import de.codecentric.model.FeedbackFormData;

package de.codecentric.controller;




@Controller
@RequestMapping("/feedback")
public class FeedbackController {

    @Autowired
    private FeedbackDao feedbackDao;

    @ModelAttribute("feedbackFormData")
    public FeedbackFormData getFeedbackFormData() {
        return new FeedbackFormData();
    }

    @RequestMapping(method = RequestMethod.GET)
    public String getFeedback(Map<String, Object> modelMap) {
        modelMap.put("feedbackList", feedbackDao.getFeedbackList());
        return "feedback";
    }

    @RequestMapping(method = RequestMethod.POST)
    public ModelAndView saveFeedback(ModelMap modelMap, @ModelAttribute("feedbackFormData") FeedbackFormData formData) {

        modelMap.put("feedbackFormData", formData);


// Path: app/src/main/java/de/codecentric/dao/FeedbackDao.java
// public interface FeedbackDao {
// 
//     public void save(Feedback feedback);
// 
//     public List<Feedback> getFeedbackList();
// }
// 
// Path: app/src/main/java/de/codecentric/domain/Feedback.java
// @Entity(name = "feedback")
// @NamedQueries({ @NamedQuery(name = "findFeedback", query = "from feedback order by timestamp desc") })
// public class Feedback {
// 
//     @Id
//     @GeneratedValue(strategy = GenerationType.AUTO)
//     private long id;
// 
//     private String userName;
//     @Lob
//     private String feedbackComment;
// 
//     @Temporal(TemporalType.TIMESTAMP)
//     private Date timestamp;
// 
//     public long getId() {
//         return id;
//     }
// 
//     public void setId(long id) {
//         this.id = id;
//     }
// 
//     public String getUserName() {
//         return userName;
//     }
// 
//     public void setUserName(String userName) {
//         this.userName = userName;
//     }
// 
//     public String getFeedbackComment() {
//         return feedbackComment;
//     }
// 
//     public void setFeedbackComment(String feedbackComment) {
//         this.feedbackComment = feedbackComment;
//     }
// 
//     public Date getTimestamp() {
//         return timestamp;
//     }
// 
//     public void setTimestamp(Date timestamp) {
//         this.timestamp = timestamp;
//     }
// 
// }
// 
// Path: app/src/main/java/de/codecentric/model/FeedbackFormData.java
// public class FeedbackFormData {
// 
//     private String id;
//     private String name;
//     private String feedbackContent;
// 
//     public String getFeedbackContent() {
//         return feedbackContent;
//     }
// 
//     public void setFeedbackContent(String feedbackContent) {
//         this.feedbackContent = feedbackContent;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public String getId() {
//         return id;
//     }
// 
//     public void setId(String id) {
//         this.id = id;
//     }
// 
// }


// Path: app/src/main/java/de/codecentric/controller/FeedbackController.java
import java.util.Date;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
import de.codecentric.dao.FeedbackDao;
import de.codecentric.domain.Feedback;
import de.codecentric.model.FeedbackFormData;

package de.codecentric.controller;




@Controller
@RequestMapping("/feedback")
public class FeedbackController {

    @Autowired
    private FeedbackDao feedbackDao;

    @ModelAttribute("feedbackFormData")
    public FeedbackFormData getFeedbackFormData() {
        return new FeedbackFormData();
    }

    @RequestMapping(method = RequestMethod.GET)
    public String getFeedback(Map<String, Object> modelMap) {
        modelMap.put("feedbackList", feedbackDao.getFeedbackList());
        return "feedback";
    }

    @RequestMapping(method = RequestMethod.POST)
    public ModelAndView saveFeedback(ModelMap modelMap, @ModelAttribute("feedbackFormData") FeedbackFormData formData) {

        modelMap.put("feedbackFormData", formData);


        Feedback feedback = new Feedback();
