학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 위 주소로 들어갔는데 404오류가 나타나서 어디서 문제인지 잘 모르겠어서 질문 남깁니다..
modelView 클래스의 model의 경우 MemberFormControllerV3, MemberSaveControllerV3, MemberListControllerV3 객체가 모두 사용해야 하므로 @Getter @Setter public class ModelView { private final String viewName; private static final Map<String, Object> model = new HashMap<>(); public ModelView(String viewName) { this.viewName = viewName; } public static Map<String, Object> getModel() { return model; } } 이와 같이 private static final로 선언한 후 모델 객체를 사용할 때 하기 코드와 같이 ModelView.getModel() 형식으로 불러와도 될까요? public class MemberListControllerV3 implements ControllerV3 { private final MemberRepository memberRepository = MemberRepository.getInstance(); @Override public ModelView process(Map<String, String> requestParamMap) { List<Member> members = memberRepository.findAll(); ModelView modelView = new ModelView("members"); ModelView.getModel().put("members", members); return modelView; } } ModelView의 viewName의 경우 호출하는 객체마다 다르게 들어올 수 있으니 static 없이 final로만 선언하면 될까요? 감사합니다:)
안녕하세요 ! 강의 잘 듣고 있습니다 감사합니다 ! 제가 만약 html 폼 에 이름과 나이를 작성해서 전송하고 내가 작성한 값을 다시 보여주는 응답을 받는다고 한다면 이렇게 코드를 짜도 될까요 ? <p th:text="${username}">empty</p> <p th:text="${age}">empty</p> @PostMapping("/response-view-v3") public String responseViewV3(@ModelAttribute HelloData helloData, Model model) { model.addAttribute("username",helloData.getUsername()); model.addAttribute("age",helloData.getAge()); return "response/hello"; } 폼 데이터도 파라미터 형식이니까 @ModelAttribute 로 요청파리미터를 받고 helloData 객체를 생성한 후 요청 파라미터 이름으로 프로퍼티를 찾아서 ( username,age) 값을 넣어준다 (setUsername() , setAge() ) model.addAttribute : 데이터를 model 에 담고 파라미터로 참조값을 전달한다 @RequestParam String username, @RequestParam int age 그냥 이렇게 하는거랑 결과는 똑같은거죠? 첫번째 방식 @ModelAttribute 는 helloData 객체를 생성하기 때문에 메모리 성능면에서 안좋나요? 서포터즈분들 항상 친절한 답변 주셔서 감사합니다
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요 코드 보다가 이해가 안가는 부분이 있어 질문드립니다! Number key 부분에서 key에 왜 타입으로 Number 타입이 쓰였는지 잘 이해가 안갑니다.. 모든 기본 자료형이 들어오게 Number 타입으로 받고 그걸 long 형으로 반환하도록 longValue()를 쓴건가요..?
강의 너무 잘 듣고 있습니다. 강의 들으면서 영한님께 여쭤보고 싶은게 있습니다! MVC의 내부동작이나 스프링 프레임워크의 내부 동작은 어떤 방식으로 파악하시는지 궁금합니다. 스프링 프레임워크가 너무 방대하다고 생각되서 디버깅으로 파악하기도 힘들다고 생각하는데, 어떤 방식으로 세세한 내부 구조를 파악하셨는지 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예 [질문 내용] h2로 웹사이트 들어가려는데 오류가 떠요 ㅠㅠ 왜이런거죠?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] Spring Initilizr 을 통해 project generating 한 후 Intellij 에서 실행하니 초기 빌드 과정에서 아래와 같이 에러가 뜨는데요, 찾아보니 제가 지금 사내 pc 및 네트워크를 사용 중이어서 뜨는 인증서 오류인 것 같습니다. 혹시 관련하여 해결책을 주실 수 있으실까요? PKIX path building failed: sun.security .provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 여기에 질문 내용을 남겨주세요. webapp 아래 index.html 파일 잘 위치해 있습니다. http://localhost:8080/index.html 주소로 들어가면 사이트 연결할 수 없음이라고 뜨고 IDE에서 run하면 뜨는 브라우저 아이콘 4개 중 크롬을 누르게 되면 http://localhost:63342/servlet/servlet.main/webapp/index.html?_ijt=gol0djjmpsd9cm9s9v6ag90urr&_ij_reload=RELOAD_ON_SAVE 위 주소로 index.html 파일이 잘 열립니다. 혹시 어떤 문제 때문에 이러는 건가요? 이와 연관된 문제인 건지는 모르겠으나 위에 긴 주소로 열린 index.html 파일에서 jsp 회원가입, 회원목록을 눌렀을 때도 404에러만 납니다. 알려주신 위치에 디렉토리 생성하고 파일 제대로 만들었음에두요.
안녕하세요. 항상 좋은 강의 감사합니다. FrontController에서 어댑터들을 DI로 적용할 수 있다고 하셔서 이를 구현해보고자 하였습니다. @WebServlet(name = "frontControllerServletV5", urlPatterns = "/front-controller/v5/*") public class FrontControllerServletV5 extends HttpServlet { ... @Autowired private Map<String, Object> handlerMappingMap; ... } 처음에 컬렉션 객체들을 Bean으로 등록하여 주입받고자 HandlerMappingConfig 클래스를 만들었습니다. @Configuration public class HandlerMappingConfig { @Bean public Map<String, Object> handlerMappingMap() { Map<String, Object> handlerMappingMap = new HashMap<>(); // V2 Controller handlerMappingMap.put("/front-controller/v5/v2/members/new-form", new MemberFormControllerV2()); handlerMappingMap.put("/front-controller/v5/v2/members/save", new MemberSaveControllerV2()); handlerMappingMap.put("/front-controller/v5/v2/members", new MemberListControllerV2()); // V3 Controller & V4 Controller ... return handlerMappingMap; } } 그리고 제대로 주입을 받았는지 테스트하기 위해 FrontControllerServletV5 클래스의 service() 메소드에서 handlerMappingMap 을 출력하도록 작성하였습니다. @WebServlet(name = "frontControllerServletV5", urlPatterns = "/front-controller/v5/*") public class FrontControllerServletV5 extends HttpServlet { ... @Autowired private Map<String, Object> handlerMappingMap; ... @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 정상적으로 주입되었는지 테스트하기 위해 출력 System.out.println("handlerMappingMap = " + handlerMappingMap); ... } } 서버를 실행시켜 확인해보니 아래 그림과 같이 handlerMappingMap 에 마치 컨테이너의 빈들이 다 들어온 것처럼 출력된 것을 확인할 수 있었습니다. 왜 이런 현상이 나타나는지 모르겠습니다. 혹시 타입이 Map<String, Object> 라 그런걸까요? 감사합니다.
안녕하세요 선생님~ 단순한 질문이 하나 있는데요! 컨트롤러에서 Exception이 발생하면 반대로 인터셉터 -> 서블릿 -> 필터 -> WAS로 예외를 넘겨주고 WAS에서 에러 페이지를 찾는다는 것에 대해서는 이해를 했는데, WebServerCustomizer 클래스를 호출한건 WebServerFactoryCustomizer라는 인터페이스를 구현했기 때문에 해당 클래스를 스프링 컨테이너가 인지하고 호출한건가요?
스프링 부트없이 Spring 사용하려하는데 jsp로 작업했던 파일을 thymeleaf로 변경하기 위해 html파일도 만들고 suffix도 변경해주었는데 아래와 같은 에러가 나옵니다. No mapping for GET /WEB-INF/view/register.html jsp로 바꿔서 하면 잘되는데 suffix만 html로 바꾸면 페이지를 찾지를 못하네요ㅠㅠ 원래 thymeleaf가 spring boot에서만 사용가능한 것 일까요?