notice Java 01

SearchController


package com.example.controller;
import java.util.ArrayList;
import java.util.List;
import javax.validation.Valid;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;
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.bind.annotation.ResponseBody;
import com.example.dto.ErrorDto;
import com.example.dto.MemberDto;
import com.example.dto.SearchResultDto;
import com.example.form.SearchForm;

@Controller
public class SearchController {

    @RequestMapping(value="/", method=RequestMethod.GET)
    public String index(Model model) {
        model.addAttribute("searchForm", new SearchForm());
        return "index";
    }

    @RequestMapping(value="/search", method=RequestMethod.GET)
    @ResponseBody
    public SearchResultDto search(@Valid @ModelAttribute SearchForm searchForm, BindingResult result) {
        SearchResultDto results = new SearchResultDto();
        if ( result.hasErrors() ) {
            results.setState("1");    //error

            List<ErrorDto> errors = new ArrayList<>();
            List<FieldError> origErrors = result.getFieldErrors();
            for ( FieldError e : origErrors) {
                errors.add(new ErrorDto(e.getField(), e.getDefaultMessage()));
            }
            results.setErrors(errors);

            System.out.println(errors.size());

        } else {
            results.setState("0");    //success
            List<MemberDto> members = new ArrayList<>();
            members.add(new MemberDto("名前1","部署1", 11));
            members.add(new MemberDto("名前2","部署2", 22));
            members.add(new MemberDto("名前3","部署3", 33));
            results.setMembers(members);
        }
        return results;
  }

}

SearchResultDto


package com.example.dto;
import java.util.ArrayList;
import java.util.List;

public class SearchResultDto {

	private String state;
	private List<ErrorDto> errors = new ArrayList<>();
	private List<MemberDto> members = new ArrayList<>();

	public String getState() {
		return state;
	}

	public void setState(String state) {
		this.state = state;
	}

	public List<ErrorDto> getErrors() {
		return errors;
	}

	public void setErrors(List<ErrorDto> errors) {
		this.errors = errors;
	}

	public List<MemberDto> getMembers() {
		return members;
	}

	public void setMembers(List<MemberDto> members) {
		this.members = members;
	}
}

package com.example.dto;
public class MemberDto {

	private String name;
	private String dept;
	private int age;

	public MemberDto(String name, String dept, int age) {
		this.name = name;
		this.dept = dept;
		this.age = age;
	}

	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getDept() {
		return dept;
	}
	public void setDept(String dept) {
		this.dept = dept;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}

}


SearchForm


package com.example.form;
import javax.validation.constraints.DecimalMax;
import javax.validation.constraints.DecimalMin;
import org.hibernate.validator.constraints.NotBlank;
public class SearchForm {
	@NotBlank
	private String name;

	@DecimalMin("10")
	@DecimalMax("99")
	private Integer age;

	public Integer getAge() {
		return age;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public void setAge(Integer age) {
		this.age = age;
	}
}