Newer
Older
task-bldg / src / main / java / osm / surveyor / task / city / CityController.java
@haya4 haya4 on 11 Aug 2022 1 KB 外部リンク[使い方]
package osm.surveyor.task.city;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.servlet.view.RedirectView;

import lombok.RequiredArgsConstructor;
import osm.surveyor.task.city.model.City;

@RequiredArgsConstructor
@Controller
public class CityController {
	private final CityRepository repository;
	
	@GetMapping("/city")
	public String showList(Model model) {
		model.addAttribute("cities", repository.findAll());
		return "cities";
	}
	
	@GetMapping("/city/add")
	public String addCity(@ModelAttribute City city) {
		return "form";
	}
	
	@PostMapping("/city/process")
	public String process(@Validated @ModelAttribute City city, BindingResult result) {
		if (result.hasErrors()) {
			return "form";
		}

		repository.save(city);
		return "redirect:/city";
	}

	@GetMapping("/city/edit/{citycode}")
	public String editCity(@PathVariable String citycode, Model model) {
		model.addAttribute("city", repository.findByCitycode(citycode));
		return "form";
	}

	@GetMapping("/city/delete/{citycode}")
	public String deleteCity(@PathVariable String citycode) {
		repository.deleteByCitycode(citycode);
		return "redirect:/city";
	}

	@GetMapping("/howto")
	public RedirectView howto() {
		RedirectView redirectView = new RedirectView();
	    redirectView.setUrl("https://github.com/yuuhayashi/task-bldg/wiki");
	    return redirectView;
	}
}