[스프링 부트] 추상 클래스의 정보를 html에 전달하기
[스프링 부트] 추상 클래스의 정보를 html에 전달하기
interface - implements와 @Qualifier을 연습해본 예제이다. package com.example.demo.test; import org.springframework.stereotype.Service; @Service public interface Car { public final String a="시동 걸기"; public final String b="D 기어 변경";
wintmoca.tistory.com
오늘은 반대로 html에 입력한 데이터를 추상 클래스에 저장해 출력
하는 예제를 만들어 보았다 🎉
<body>
<form action="" method="post">
<input name="in">
<input type="submit">
</form>
</body>
in이라는 name으로 값을 보낼 html 파일을 만들었다.
submit 버튼을 누르면 새로고침되며 자기 자신에게 입력한 데이터가 전송되며,
데이터가 노출되지 않도록 post
방식으로 설정했다.
import org.springframework.stereotype.Component;
import jakarta.servlet.http.HttpServletRequest;
// 부모 클래스
@Component
public interface Parent {
public void A(HttpServletRequest re);
}
// 자식 클래스
@Component
public class Child implements Parent {
public void A(HttpServletRequest re) {
String in=re.getParameter("in");
System.out.print(in);
}
}
html의 정보를 받을 부모 추상 클래스와 상속받는 자식 클래스를 만들었다.
html의 데이터를 받을 것이기 때문에 HttpServletRequest
를 import하고 사용을 위해 선언해주었다.
RequestParam으로 먼저 작성을 했었는데, 뒤에서 코드를 작성하다 보니
값이 비어있을 때는 오류가 생길 수 있다고 생각되어서 Request로 바꿔주었다.
부모 클래스는 불완전하게 작성하고 자식 클래스에서
getParameter로 name in의 데이터를 받아와 저장하는 String형 변수 in을 작성, 출력하는 구문까지 작성해 완성해 주었다.
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
@Controller
public class control {
@Autowired
private Parent p;
@GetMapping("/")
public String index() {
return "1_index";
}
@GetMapping("abstract")
public String abstractA() {
return "2_abstract";
}
@PostMapping("abstract")
public String abstractA(HttpServletRequest re) {
p.A(re);
return "2_abstract";
}
}
추상 클래스를 호출할 Control 클래스로 이동했다.
@Autowired
로 자식 클래스를 통해 완성된 부모 클래스를 연결해 가져오고,
post로 받아온 데이터가 있을 때 Parent 클래스의 A 메소드를 호출하는 구문을 작성했다.
p.A(re)가 실행되면 getParameter("in") → System.out.print(in)이 실행 되어 콘솔 창에 입력한 데이터가 출력된다.
'Spring Boot' 카테고리의 다른 글
[스프링 부트] JS에서 html의 변수 사용하기 (0) | 2023.05.26 |
---|---|
[Thymeleaf] button th:onclick으로 페이지 이동하기 (0) | 2023.05.25 |
[스프링 부트] 추상 클래스의 정보를 html에 전달하기 (0) | 2023.05.23 |
[스프링 부트] interface - implements 추상 메소드 상속하기 (0) | 2023.05.22 |
[스프링 부트] NoSuchBeanDefinitionException: 에러 해결하기 (0) | 2023.05.22 |