본문 바로가기
목차
Spring (boot) 오류 해결

cannot invoke because is null 페이지 처리

by 지각생 2022. 2. 11.
728x90
@GetMapping("/category")
	public String saveCategoryName(@RequestParam(value = "categoryName", required = false) String categoryName,
			@RequestParam(name = "p", required = false, defaultValue = "1") Integer page,
			@RequestParam(name = "f", required = false, defaultValue = "title") String field,
			@RequestParam(name = "q", required = false, defaultValue = "") String query,
			@RequestParam(name = "r", required = false, defaultValue = "15") Integer rowNum,
			@RequestParam(name = "desc", required = false, defaultValue = "DESC") String desc,
			@RequestParam(name = "order", required = false, defaultValue = "date") String order,
			@AuthenticationPrincipal PrincipalDetail principal, Model model, Board board) {

		if (principal == null) {
			System.out.println("principal"+principal.getNickName());
			return "redirect:/";
		} else {
			List<Category> getCategoryList = leftService.getCategoryList(principal.getNickName());
			model.addAttribute("getCategoryList", getCategoryList);
		}

		boolean pub = true;
		List<Board> getWritingList = boardService.getWritingList(page, field, query, pub, rowNum, order, desc);
		int getWritingCount = boardService.getWritingCount(field, query);
		model.addAttribute("getWritingList", getWritingList);
		model.addAttribute("getWritingCount", getWritingCount);
		return "root.mid_contentList";

	}

위와 같이 작성시

만약 principal이 null값이라면

if문 아래

System.out.println("principal"+principal.getNickName());

이란 구문만 넣어도 

cannot invoke because is null 오류가 뜬다 

따라서


해결

@GetMapping("/category")
	public String saveCategoryName(@RequestParam(value = "categoryName", required = false) String categoryName,
			@RequestParam(name = "p", required = false, defaultValue = "1") Integer page,
			@RequestParam(name = "f", required = false, defaultValue = "title") String field,
			@RequestParam(name = "q", required = false, defaultValue = "") String query,
			@RequestParam(name = "r", required = false, defaultValue = "15") Integer rowNum,
			@RequestParam(name = "desc", required = false, defaultValue = "DESC") String desc,
			@RequestParam(name = "order", required = false, defaultValue = "date") String order,
			@AuthenticationPrincipal PrincipalDetail principal, Model model, Board board) {

		if (principal == null) {
			return "redirect:/";
		} else {
			List<Category> getCategoryList = leftService.getCategoryList(principal.getNickName());
			model.addAttribute("getCategoryList", getCategoryList);
		}

		boolean pub = true;
		List<Board> getWritingList = boardService.getWritingList(page, field, query, pub, rowNum, order, desc);
		int getWritingCount = boardService.getWritingCount(field, query);
		model.addAttribute("getWritingList", getWritingList);
		model.addAttribute("getWritingCount", getWritingCount);
		return "root.mid_contentList";

	}

principal null 일때 화면 전환으로 처리해주었다.

728x90

댓글