79 lines
2.5 KiB
Java
79 lines
2.5 KiB
Java
/*
|
|
* Copyright 2002-2016 the original author or authors.
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
package sample.contact;
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Controller;
|
|
import org.springframework.validation.BindingResult;
|
|
import org.springframework.validation.Validator;
|
|
import org.springframework.web.bind.WebDataBinder;
|
|
import org.springframework.web.bind.annotation.InitBinder;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
import org.springframework.web.bind.annotation.RequestMethod;
|
|
import org.springframework.web.bind.annotation.RequestParam;
|
|
import org.springframework.web.servlet.ModelAndView;
|
|
|
|
/**
|
|
*
|
|
* @author Luke Taylor
|
|
* @since 3.0
|
|
*/
|
|
@Controller
|
|
public class AddDeleteContactController {
|
|
@Autowired
|
|
private ContactManager contactManager;
|
|
private final Validator validator = new WebContactValidator();
|
|
|
|
/**
|
|
* Displays the "add contact" form.
|
|
*/
|
|
@RequestMapping(value = "/secure/add.htm", method = RequestMethod.GET)
|
|
public ModelAndView addContactDisplay() {
|
|
return new ModelAndView("add", "webContact", new WebContact());
|
|
}
|
|
|
|
@InitBinder
|
|
public void initBinder(WebDataBinder binder) {
|
|
System.out.println("A binder for object: " + binder.getObjectName());
|
|
}
|
|
|
|
/**
|
|
* Handles the submission of the contact form, creating a new instance if the username
|
|
* and email are valid.
|
|
*/
|
|
@RequestMapping(value = "/secure/add.htm", method = RequestMethod.POST)
|
|
public String addContact(WebContact form, BindingResult result) {
|
|
validator.validate(form, result);
|
|
|
|
if (result.hasErrors()) {
|
|
return "add";
|
|
}
|
|
|
|
Contact contact = new Contact(form.getName(), form.getEmail());
|
|
contactManager.create(contact);
|
|
|
|
return "redirect:/secure/index.htm";
|
|
}
|
|
|
|
@RequestMapping(value = "/secure/del.htm", method = RequestMethod.GET)
|
|
public ModelAndView delContact(@RequestParam("contactId") int contactId) {
|
|
Contact contact = contactManager.getById(Long.valueOf(contactId));
|
|
contactManager.delete(contact);
|
|
|
|
return new ModelAndView("deleted", "contact", contact);
|
|
}
|
|
}
|