푸들푸들

1104 [Sakila] addStaff.jsp 본문

구디아카데미/JAVA

1104 [Sakila] addStaff.jsp

COCO_develop 2024. 11. 4. 12:13

staff 추가, staffList Controller

@Slf4j
@Controller
public class StaffController {
	@Autowired StaffMapper staffMapper;
	@Autowired StoreMapper storeMapper;
	@Autowired AddressMapper addressMapper;
	
	
	// <leftMenu.a태그, addStaff.주소검색>에서 넘어옴
	@GetMapping("/on/addStaff")
	public String addStaff(Model model, @RequestParam(defaultValue="") String searchAddress) {
		// model(storeList)
		log.debug("searchAddress: ",searchAddress);
		List<Store> storeList = storeMapper.selectStoreList();
		model.addAttribute("storeList",storeList);
		
		// model(addressList) <- searchAddress가 공백이 아니면 검색 후 재호출
		if(!searchAddress.equals("")) {
			List<Address> addressList = addressMapper.selectAddressListByWord(searchAddress);
			log.debug("Address list: "+addressList.toString());
			model.addAttribute("addressList", addressList);
		}
		return "on/addStaff";
	}
	
	@PostMapping("/on/addStaff")
	public String addStaff(Staff staff) { // 커맨드 객체 생성 -> 커맨드 객체.set(request.getPrameter())
		// insert 호출
		return "redirect:/on/staffList";
	}
	
	@GetMapping("/on/staffList")
	public String staffList(Model model,@RequestParam(defaultValue="1") int currentPage) {
		// model(staffList)
		return "on/staffList";
	}
	
	@GetMapping("/on/staffOne")
	public String staffOne(HttpSession session,Model model) {
		int staffId = ((Staff)session.getAttribute("loginStaff")).getStaffId();
		Map<String, Object> staff = staffMapper.selectStaffOne(staffId);
		model.addAttribute("staff",staff);
		log.debug(staff.toString());
		return "on/staffOne";
	}
 }

PostMapping

public String addStaff(Staff staff)

  -form에서 받는 객체 - 원래 10개 값을 받아와야하지만 Staff staff 하나로 값을 받을 수 있다(Spring의 장점-line수가 엄청        나게 줄어든다) 

public String staffList(@RequestParam(defaultValue="1") int currentPage)

  - 값 하나를 받을 때: @RequestParam() 

  - defaultValue="1": 값이 넘어오지 않을 때 기본값=1

model(staffList)를 위해 mapper 추가 -> StoreMapper.java, xml

 

 

주소 검색 쿼리(AdressMapper.xml)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.sakila.mapper.AdressMapper">
	<select id="selectAddressListByWord" parameterType="String" resultType="com.example.sakila.vo.Address">
		SELECT 
			address_id addressId
			, address
		FROM address
		WHERE LOWER(address) LIKE LOWER(CONCAT('%',#{searchAddress},'%'));
	</select>
</mapper>

 

'구디아카데미 > JAVA' 카테고리의 다른 글

1104 동적 Update문  (0) 2024.11.04
이메일 유효성 검사  (0) 2024.11.04
Github 잔디  (4) 2024.11.02
Spring 설치  (1) 2024.11.02
1101 [Sakila] staffOne  (2) 2024.11.01