2024. 6. 17. 12:43ㆍJSP+Spring Boot
Cotroller
package com.example.demo.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import com.example.demo.dto.Goods;
import com.example.demo.service.GoodsService;
@Controller
//class 명을 Controller로 작성하면 Spring 내부에 있는 Controller와 충돌이 발생.
public class GoodsController {
@GetMapping("/")//맨 앞 페이지에서 볼 화면 띄우기
public String registerForm(Model model) {
//db에 값을 넣을 수 있도록 new Goods()를 이용해서 값이 들어갈 공간을 비운채 만들어주기
model.addAttribute("goods", new Goods());
return "index";
}
//GoodsService에 숫자값이 아니면 들어가지 못하게 방지하거나,
//비밀번호 암호화 설정같은 상세기능을 넣고
//service를 호출해서 mapper java파일에 값을 전달할 수 있도록 작성
@Autowired
private GoodsService goodsService;
@PostMapping("/register")
public String insertGoods(Goods goods, Model model) {
goodsService.insertGoods(goods);
//log
model.addAttribute("msg", "상품이 성공적으로 등록되었습니다.");
return "registerSuccess";
}
}
** registerForm 메서드 안의 매개변수
Goods goods : html form에 name으로 시작하는 변수명이 있으면 Goods.java의 변수명과 form에 적은 name값이 일치할 경우 자동으로 Goods.java에 일치하는 변수명에 form에 작성한 값이 임시저장(할당됨)
Model model : 돌아가기를 하거나 새로고침 기능을 사용할 경우 html 파일에 데이터를 다시 전달해주는 역할
-> 또 다른 의미로 임시저장
-------------------------------------------------------------------------------------------------------------------------
DTO
package com.example.demo.dto;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class Goods {
private int goodsId;
private String goodsName;
private int goodsPrice;
private int goodsQuantity;
}
-------------------------------------------------------------------------------------------------------------------------
Mapper
package com.example.demo.mapper;
import org.apache.ibatis.annotations.Mapper;
import com.example.demo.dto.Goods;
@Mapper //sql 사용할 리스트 목록
public interface GoodsMapper {
void insertGoods(Goods goods);
}
** ! 기능을 상세하기 적기 위한 공간이 아님 !
Mapper.xml에 작성한 id 리스트를 작성하는 공간이기 때문에 interface로 작성.
mapper.xml에 어떠한 파일이 존재하는지 리스트 작성란
@Mapper 어노테이션을 활용해서 SpringBoot가 Mapper를 찾을 수 있도록 설정
-------------------------------------------------------------------------------------------------------------------------
Service
package com.example.demo.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.example.demo.dto.Goods;
import com.example.demo.mapper.GoodsMapper;
@Service
public class GoodsService {
@Autowired // 없으면 하나하나 Mapper 위치랑 Service 위치를 설정하는 Context xml 파일을 만들어줘야함
private GoodsMapper goodsMapper;
public void insertGoods(Goods goods) {
goodsMapper.insertGoods(goods);
}
}
'JSP+Spring Boot' 카테고리의 다른 글
DB 테이블에 있는 값 불러오기(select) (0) | 2024.06.20 |
---|---|
상품 등록 폼 만들기(resources 파일)(insert) (0) | 2024.06.17 |
Thymeleaf(inline, classappend), sequence (0) | 2024.06.14 |
Thymeleaf(switch, case) (0) | 2024.06.14 |
Thymeleaf (if, unless) (0) | 2024.06.14 |