티스토리 뷰

 

 

<td>
    <h5>
        ${pd.handling }
    </h5>
</td>

 

이렇게 출력됨

문자열로 길게 저장되어서 그런거였다. 잘라서 출력하려면 split을 사용해야한다는 생각이 들었다.

 

 

 

그래서 split 사용해가지고 아래와 같이 코드 변경함

 

 

	@GetMapping("/product")
	public String requestProductById(@RequestParam("id") String productId, Model model)
	{
		
		
		Product pdById = productService.readProductById(productId);
		model.addAttribute("pd", pdById); // product.jsp 에서 pd. 해서 꺼내쓰면됨

		String[] handlingArray = pdById.getHandling().split("-");
		model.addAttribute("handling",handlingArray);
		
		return "/Product/product";
	}

 

 

split으로 잘라서 출력했더니 이렇게 됨

첫번째 값을 공백으로 출력함.

 

이렇게 출력되는 이유는 내가 애초에 문자열을 저장할 때 '-'으로 시작하도록 입력해주었는데

이렇게 시작하는 경우 빈 문자열이 배열의 첫번 째 요소로 포함되기 때문이다.

 

 

 

 

 

 

위처럼 문제점을 인식하고 해결하기 위해 공백을 없애주거나 첫번째 값을 빼고 저장하도록 코드를 변경했다.

 

split() 메서드를 사용해 handling 문자열을 '-' 기준으로 분할하고 결과를 handlingParts 배열에 저장한다. 그 다음 반복문을 사용해 배열의 첫번째 요소를 제외한 나머지를 출력했다. 그리고 trim() 메서드를 호출해 문자열 앞 뒤의 공백을 제거했다.

 

	@GetMapping("/product")
	public String requestProductById(@RequestParam("id") String productId, Model model)
	{
		
		
		Product pdById = productService.readProductById(productId);
		model.addAttribute("pd", pdById); // product.jsp 에서 pd. 해서 꺼내쓰면됨

		String handling = pdById.getHandling();
		String[] handlingParts = handling.split("-");
		List<String> handlingList = new ArrayList<>();

		// 첫 번째 요소를 제외한 나머지를 리스트에 추가
		for (int i = 1; i < handlingParts.length; i++) {
		    handlingList.add(handlingParts[i].trim());
		}

		// 모델에 리스트를 담아서 뷰로 전달
		model.addAttribute("handling", handlingList);
		
		return "/Product/product";
	}

 

 

원하는 결과대로 출력된다.

 

 

 

 

 

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday