1106 spring

yunha·2023년 11월 6일
0

JSP/Spring

목록 보기
28/36

Mapper 인터페이스

root-context.xml =>
<!-- Mapper 인터페이스 설정 
	   개발자가 직접 DAO를 설정하지 않아도
	   자동으로 Mapper 인터페이스를 활용하는 객체를 생성하게 됨
   	-->
   	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
      <property name="basePackage" value="kr.or.ddit.mapper" />
   	</bean>

~~SQL.xml=>

<mapper namespace="kr.or.ddit.mapper.BookMapper">

mapper 만듦 =>

package kr.or.ddit.mapper;

import java.util.List;
import java.util.Map;

import kr.or.ddit.vo.BookVO;

public interface BookMapper {

	//도서 목록
	// DAO) public List<BookVO> list(Map<String,Object> map) {
	
	// Mapper Interface -> 도서 목록
	// <select id="list" parameterType="hashMap" resultType="bookVO">
	// mapper namespace == 풀 경로
	// mapper id == 메소드명
	public List<BookVO> list(Map<String,Object> map);
}

form:~~

=> 자바 쪽 세팅값 갖다 쓰기 가능

<form:input path="text"> : 테스트 필드. id="test" name="test"
<form:checkbox> : 체크박스
<form:radiobutton> : 라디오 버튼
<form:select> : 셀렉트 박스

스프링 폼데이터
규칙 : type 및 name, id 속성은 path로 대신함 => type="number"같이 없는 거 써야 될 땐 그땐 일반 input

	 <!-- <input type="text" name="bookId" id="bookId" /> -->
	<form:input path="bookId" /> <!-- @GetMapping("/createForm")에서 가져온 bookId가 있음 -->
	<p>제목 : <form:input path="title" required="required" /> </p>

@ModelAttribute

: 사용자가 요청 시 전달하는 값을 오브젝트 형태로 매핑해주는 어노테이션 => 매개변수가 많아지는 것 방지
: setter로 값 설정
: 이것을 통해 모델의 속성(attribute)에 접근하거나 속성이 없는 경우 인스턴스화
: 모델의 속성이 (input 태그의) name과 필드의 이름과 일치하다면, Http 서블릿 request 파라미터의 값으로 => 데이터 바인딩

<form:select path="eDeptMap" => VO에 멤버변수로 정의 되어있어야 함

=>

public class EmployeeVO {
	private String eEmpno;
	.
    .
    
	private Map<String, String> eDeptMap;

@Validated

: 스프링에서 제공하는 어노테이션 - @Valid와 기능이 같지만, 속성 제약 조건에 대한 그룹을 만들어 적용시킬 수 있음=>원하는 속성만 유효성 검사 하기 가능
: request 후, 서버 측에서 데이터를 바인딩할 때, 데이터가 유효한지 검사해야할 때 사용(누락, 최대 용량 초과 등)
: 그룹 유효성 검사나 Controller가 아닌 다른 계층에서 유효성 검증이 가능
: 입력값 검증을 할 도메인 클래스에 지정
ex)

	// BindingResult : 입력값 검증 결과를 담고 있는 객체
	@RequestMapping(value="/create", method=RequestMethod.POST)
	public ModelAndView createPost(@Validated BookVO bookVO, 
			MultipartFile[] uploadFile,
			ModelAndView mav,
			BindingResult bindingResult) {
		log.info("bookVO : " + bookVO);
		log.info("uploadFile : " + uploadFile);

		// 입력값 검증 결과(true : 오류 발생 /  false : 오류 없음)
		log.info("bindingResult.hasErrors() : " + bindingResult.hasErrors());

profile
기록

0개의 댓글