inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

postmapping 에서의 모델바인딩 객체

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

폼에서 작성한 데이터들이 @PostMapping("/add)로 넘어가서 @ModelAttribute 를 통해 item 객체에 요청 파라미터를 프로퍼티 접근법으로 값을 세팅하고 모델에 item 객체를 item 의 이름으로 바인딩 되는것이 맞죠? 맞다면, @ModelAttribute 를 통해 바인딩 되는 객체는 addForm 메소드에서 만들어주어서 타임리프에 활용가능하게 넘겨주었던 그 item 객체인가요?(같은 객체를 재사용하는건지) , 아니면 새로운 객체를 또 만들어서 새로운객체에 값을 세팅해주고 모델에 바인딩을 해주는것인지 궁금합니다 수정폼에서 Item item = itemRepository.findById(itemId); 에서 찾는 item (entity?) 도 addForm 에서 새로 생성했던던 그 객체인것이죠?

  • spring
  • mvc
수빈 댓글 3 좋아요 0 조회수 477

@ResponseBody 어노테이션을 쓰는 메소드와 안 쓰는 메소드 차이가 궁금합니다.

해결됨

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요 강의를 듣다가 헷갈리는 부분이 있어서 질문 드립니다. @ResponseBody를 메소드에 붙이고 안 붙히는 기준이 궁금합니다. 일단 제가 이해한 @ResponseBody는 뷰를 따로 사용하지 않고 HTTP 응답 본문에 메소드가 리턴한 정보(원시 데이터 또는 객체=json)를 입력해서 응답하는 것으로 이해했습니다. 근데 아래 사진의 빨간 밑줄 친 메서드들을 보면 뷰의 논리적 이름이 아닌 ResponseEntity 객체를 리턴하는 것으로 보여지고 객체를 리턴하면 HTTP 응답 본문에 입력하려면 @ResponseBody 어노테이션이 필요한 것이 아닌가 궁금합니다. 그런데 ResponseEntity의 코드를 보니까 HttpEntity를 상속 받던데 ResponseEntity가 HTTP 응답 그 자체라서 @ResponseBody를 사용하지 않는 것인가요? 답변 주시면 정말 감사하겠습니다.

  • spring
  • mvc
  • ResponseBody
  • http응답
알알이 댓글 3 좋아요 0 조회수 555

base.html 추가link

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

base.html 파일에서 <!--추가--> 부분에서 알려주셨던 내장 태그 <th:block> 태그 대신 일반태그 link 태그를 넣어도 정상작동하는것을 확인했습니다. 둘중 아무거나 사용해도 무방한가요?

  • spring
  • mvc
수빈 댓글 2 좋아요 0 조회수 215

H2 DB 테이블 생성이 안됩니다.

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

안녕하세요 H2 DB 테이블 생성이 안되는데, 스프링부트를 실행하면 에러도 안납니다. H2 연결되어 있습니다. 처음에 jpashop.mv .db 도 잘 생성되었습니다. 스프링부트를 실행하면 어떤 에러도 없지만, DB테이블이 만들어 지는 문구가 하나도 없습니다 H2 콘솔창도 DB 테이블 한개도 없이 아주 깨끗합니다. 어떻게 해결할 수 있을까요?? . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v3.1.7) 2023-12-31T15:17:34.731+09:00 INFO 13760 --- [ restartedMain] jpabook.jpashop.JpashopApplication : Starting JpashopApplication using Java 21.0.1 with PID 13760 (C:\Users\dqk86\Downloads\jpashop\out\production\classes started by dqk86 in C:\Users\dqk86\Downloads\jpashop) 2023-12-31T15:17:34.734+09:00 INFO 13760 --- [ restartedMain] jpabook.jpashop.JpashopApplication : No active profile set, falling back to 1 default profile: "default" 2023-12-31T15:17:34.825+09:00 INFO 13760 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable 2023-12-31T15:17:34.825+09:00 INFO 13760 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG' 2023-12-31T15:17:35.417+09:00 INFO 13760 --- [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. 2023-12-31T15:17:35.437+09:00 INFO 13760 --- [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 12 ms. Found 0 JPA repository interfaces. 2023-12-31T15:17:36.132+09:00 INFO 13760 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http) 2023-12-31T15:17:36.147+09:00 INFO 13760 --- [ restartedMain] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2023-12-31T15:17:36.148+09:00 INFO 13760 --- [ restartedMain] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.17] 2023-12-31T15:17:36.213+09:00 INFO 13760 --- [ restartedMain] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2023-12-31T15:17:36.214+09:00 INFO 13760 --- [ restartedMain] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1387 ms 2023-12-31T15:17:36.254+09:00 INFO 13760 --- [ restartedMain] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... 2023-12-31T15:17:36.443+09:00 INFO 13760 --- [ restartedMain] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection conn0: url=jdbc:h2:mem:8b0a757c-2d15-4737-adab-1dbaee374f3e user=SA 2023-12-31T15:17:36.445+09:00 INFO 13760 --- [ restartedMain] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. 2023-12-31T15:17:36.455+09:00 INFO 13760 --- [ restartedMain] o.s.b.a.h2.H2ConsoleAutoConfiguration : H2 console available at '/h2-console'. Database available at 'jdbc:h2:mem:8b0a757c-2d15-4737-adab-1dbaee374f3e' 2023-12-31T15:17:36.698+09:00 INFO 13760 --- [ restartedMain] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] 2023-12-31T15:17:36.806+09:00 INFO 13760 --- [ restartedMain] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.2.17.Final 2023-12-31T15:17:36.809+09:00 INFO 13760 --- [ restartedMain] org.hibernate.cfg.Environment : HHH000406: Using bytecode reflection optimizer 2023-12-31T15:17:37.052+09:00 INFO 13760 --- [ restartedMain] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer 2023-12-31T15:17:37.941+09:00 INFO 13760 --- [ restartedMain] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) 2023-12-31T15:17:37.984+09:00 INFO 13760 --- [ restartedMain] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' 2023-12-31T15:17:38.027+09:00 WARN 13760 --- [ restartedMain] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning 2023-12-31T15:17:38.195+09:00 INFO 13760 --- [ restartedMain] o.s.b.a.w.s.WelcomePageHandlerMapping : Adding welcome page: class path resource [static/index.html] 2023-12-31T15:17:38.552+09:00 INFO 13760 --- [ restartedMain] o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 35729 2023-12-31T15:17:38.576+09:00 INFO 13760 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path '' 2023-12-31T15:17:38.587+09:00 INFO 13760 --- [ restartedMain] jpabook.jpashop.JpashopApplication : Started JpashopApplication in 4.164 seconds (process running for 4.578)

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
혁짱 댓글 2 좋아요 0 조회수 2086

제가 이해한내용이 맞나요?

해결됨

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] @ModelAttribute의 경우에는 잘못된 타입입력으로인해 바인딩 자체가 안되더라도 BindingResult에 담기고 Controller가 호출되는반면 @RequestBody의 경우에는 바인딩자체가 호출이 안될때에는 Controller자체가 호출이 안된다라고 이해하면될까요?

  • spring
  • mvc
잘열심히 댓글 2 좋아요 2 조회수 464

신규 트랜잭션 질문이요

미해결

스프링 DB 2편 - 데이터 접근 활용 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. @Transactional도 REQUIRED 옵션이 디폴트 일텐데 왜 각각이 분리되어서 동작하는지 궁금해요 REQUIRED 옵션이 기본 디폴트라고 말씀하셨는데 BasicTxTest는 트랜잭션 매니저를 주입받아서 트랜잭션을 사용하기 때문에 REQUIRED 옵션으로 인해 신규 트랜잭션을 getTransaction 하더라도 기존 트랜잭션이 존재하면 내부 트랜잭션으로 간주되는 것이고, MemberServiceTest는 @Transactional 어노테이션 덕분에 트랜잭션 AOP를 사용하여 각각 다른 AOP 객체가 생성되어서 물리 트랜잭션이 두개가 생기는 건가요?

  • spring
  • mvc
  • jpa
  • querydsl
  • spring-data-mybatis
  • spring-jpa
묵국 댓글 2 좋아요 0 조회수 370

webapp 관련 질문드립니다.

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 이전 강의에서도 webapp에 넣어도 인식을 못해서 질문게시판을 봐도 해결이 안되서 static에 index.html을 넣어서 진행했는데 요번에 new-form.jsp(강의 3분 부분) 또한 static에 넣으면 되겠지 하고 했는데 안되서 webapp을 따로 만들어봐도 안되서 질문드립니다. https://drive.google.com/file/d/1vj5qb3pyqOGxxT2YTs2VrKI397SIARdv/view?usp=sharing 에러코드 Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. Sat Dec 30 17:50:52 KST 2023 There was an unexpected error (type=Not Found, status=404). ------------------------------------------------------

  • spring
  • mvc
준수 댓글 2 좋아요 0 조회수 743

지금 스프링입문 듣기전에 듣는 학생인데 공지사항같은거 없을까요?

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 지금 많이 바뀌었는데 프로젝트 부분을 어떻게 선택해야할까요? 버전은 3.2.1로 해도되나요? 해당 내용들을 공지해주신 곳이 있나요?

  • java
  • spring
  • mvc
  • spring-boot
김병곤 댓글 2 좋아요 0 조회수 866

html 한글 깨지는 현상

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] html 파일 복사붙여 넣기 하시는거 따라했는데 제 화면에는 한글이 깨져서 나옵니다.(한글 대신 네모박스) 어떻게하면 해결 할 수 있을지 도와주시면 감사하겠습니다.

  • spring
  • mvc
손주형 댓글 2 좋아요 0 조회수 698

주문조회 V3.1 실행 후 Query 질문

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. V3.1 실행 후 콘솔창에 뜨는 쿼리문이 다음과 같이 뜹니다. springboot version 3.2.1 이고 Hibernate5JakartaModule로 설정했습니다. application.properties 도 아래와 같이 설정했습니다. 그외 부분도 강사님 코드를 그대로 복붙해도 다음과 같이 물음표가 너무 많이 뜨는데 버전 문제인건가요?

  • java
  • spring
  • spring-boot
  • jpa
댓글 4 좋아요 0 조회수 1072

Thymeleaf가 정확히 언제 쓰이는건가요?

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

타임리프가 server-side 라는건 알겠는데 정확히 언제쓰이는지 구글링해도 정확하게 모르겠어요. ViewResolver가 Thymeleaf를 이용해서 넣을 데이터 다 템플릿에 넣고 완전 더 이상 건들게 없는 view를 DispatcherServlet한테 넘기는건가요? 아니면 ViewResolver한테 view template을 받고 DispatcherServlet이 Thymeleaf를 이용해서 데이터를 넣어서 완벽한 view만들고 client한테 전송하는건가요? Server 쪽에서 정확하게 어디서 쓰이는지 궁금하네여

  • spring
  • mvc
meenzino 댓글 2 좋아요 0 조회수 312

import에 관해서 질문드립니다

해결됨

[React 1부] 만들고 비교하며 학습하는 React

안녕하세요 강의 정말 잘 듣고 있습니다. 해당 강의를 듣는중 궁금한점이 생겨서 질문 드립니다. 제가 원래 java/spring을 공부하다가 이번에 프론트 엔드쪽에 관심이 생겨서 React를 학습중인데 ide에서는 .js 파일을 Import할때 뒤에 왜 자동으로 .js가 안붙도록 되어있나요? 저는 강사님과 다른 ide를 사용중인데도 여기서도 .js가 자동으로 붙지 않습니다. import React from "react"; import Header from "./components/Header.js"; import KeywordList from "./components/KeywordList.js"; import SearchForm from "./components/SearchForm.js"; import SearchResult from "./components/SearchResult.js"; import Tabs, { TabType } from "./components/Tabs.js"; import store from "./Store.js"; 제가 추측한건데 React를 import 하는 경우에는 react 파일이 typeScript로 되어있고 나머지 경우는 전부 javaScript로 되어있습니다. 따라서 기본이 .ts로 설정 되어 있어서 javascript파일은 별로로 명시해줘야 찾을 수 있게 되어 있다고 생각이 듭니다. 별로 의미없는 질문이지만 궁금해서 질문 드립니다. 감사합니다.

  • react
  • mvc
이찬원 댓글 1 좋아요 1 조회수 286

frontControllerServletV5 클래스의 service 함수 호출 횟수와 시점, handler 가 null인 문제

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요! 항상 양질의 강의를 위해 힘써주셔서 감사드립니다! 유연한 컨트롤러 v5를 공부하던 중 궁금한 점이 생겨서 질문 올렸습니다. 아래 제 코드에서는 현제 viewResolver 함수에서 경로가 "/WEB-INF/...." 가 아닌 "WEB-INF/..." 으로 되어 있어서 해당 코드를 수정하지 않으면 404 에러가 발생하는 상황입니다. 처음에는 어느 곳이 틀렸는지 찾을 수가 없어서 틀린 곳을 찾기 위해 디버깅 하던 중, handler가 null인지 검사하는 부분에서 handler가 null인 것을 확인했습니다. 저는 viewResolver가 호출 되기 이전에는 정상적으로 handler를 찾는 작업이 수행되어 handler가 null일 수가 없다고 생각했는데 실제로 확인해보니 제 예상과 달라 잘 이해가 되지 않았습니다. 또한, mapping된 url을 한번만 요청했는데도 service 함수 내의 첫번째 줄에서 println 함수를 호출했을 때 해당 문장이 2번 출력되는 것을 확인했는데 왜 이런 결과가 나왔는지도 궁금합니다. package hello.servlet.web.frontcontroller.v5; import hello.servlet.web.frontcontroller.ModelView; import hello.servlet.web.frontcontroller.MyView; import hello.servlet.web.frontcontroller.v3.controller.MemberFormControllerV3; import hello.servlet.web.frontcontroller.v3.controller.MemberListControllerV3; import hello.servlet.web.frontcontroller.v3.controller.MemberSaveControllerV3; import hello.servlet.web.frontcontroller.v4.controller.MemberFormControllerV4; import hello.servlet.web.frontcontroller.v4.controller.MemberListControllerV4; import hello.servlet.web.frontcontroller.v4.controller.MemberSaveControllerV4; import hello.servlet.web.frontcontroller.v5.adapter.ControllerV3HandlerAdapter; import hello.servlet.web.frontcontroller.v5.adapter.ControllerV4HandlerAdapter; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @WebServlet(name = "frontControllerServletV5", urlPatterns = "/front-controller/v5/*") public class FrontControllerServletV5 extends HttpServlet { // private Map<String, ControllerV4> controllerV4Map = new HashMap<>(); private final Map<String, Object> handlerMappingMap = new HashMap<>(); private final List<MyHandlerAdapter> handlerAdapter = new ArrayList<>(); public FrontControllerServletV5() { initHandlerMappingMap(); initHandlerAdapters(); } private void initHandlerMappingMap() { handlerMappingMap.put("/front-controller/v5/v3/members/new-form", new MemberFormControllerV3()); handlerMappingMap.put("/front-controller/v5/v3/members/save", new MemberSaveControllerV3()); handlerMappingMap.put("/front-controller/v5/v3/members", new MemberListControllerV3()); //v4 추가 handlerMappingMap.put("/front-controller/v5/v4/members/new-form", new MemberFormControllerV4()); handlerMappingMap.put("/front-controller/v5/v4/members/save", new MemberSaveControllerV4()); handlerMappingMap.put("/front-controller/v5/v4/members", new MemberListControllerV4()); } private void initHandlerAdapters() { handlerAdapter.add(new ControllerV3HandlerAdapter()); handlerAdapter.add(new ControllerV4HandlerAdapter()); } @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("here"); Object handler = getHandler(request); if (handler == null) { System.out.println("is null"); response.setStatus(HttpServletResponse.SC_NOT_FOUND); return; } MyHandlerAdapter adapter = getHandlerAdapter(handler); ModelView mv = adapter.handle(request, response, handler); String viewName = mv.getViewName(); //논리이름 new-form MyView view = viewResolver(viewName); view.render(mv.getModel(), request, response); } private Object getHandler(HttpServletRequest request) { String requestURI = request.getRequestURI(); return handlerMappingMap.get(requestURI); } private MyHandlerAdapter getHandlerAdapter(Object handler) { //handlerAdapter.iter -> for문 생성 for (MyHandlerAdapter adapter : handlerAdapter) { if (adapter.supports(handler)) { return adapter; } } throw new IllegalArgumentException("handler adapter를 찾을 수 없습니다. handler=" + handler); } private static MyView viewResolver(String viewName) { MyView view = new MyView("WEB-INF/views/" + viewName + ".jsp"); return view; } }

  • spring
  • mvc
kimsejin0206 댓글 2 좋아요 0 조회수 410

import javax.persistence.Entity; 가 안되서 import jakarta.persistence.Entity;로 하고 있는데요.

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요 강의를 듣다가 아래가 동작하지 않아서 import javax.persistence.Entity; 아래 줄로 일단 넘어갔는데요 import jakarta.persistence.Entity; 스프링부트가 이제는 JDK-17로 어쩔수 없이 환경설정을 해야해서 17로 했느데요 모든 강의가 중 이렇게 조금씩 동작을 안하는 수정된 부분을 영상으로 업로드할 계획이 있으신가요? 아니면 누군가 미리 듣고서 한번 당해보고 그분이 또는 본인이 질문하고 질문의 답변을 알아서 찾아서 적용해서 들어야할까요?ㅠ

  • java
  • spring
  • mvc
  • spring-boot
전경환 댓글 2 좋아요 2 조회수 2074

ArgumentResolver에 대해서 질문있습니다.

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

HandlerMethodArgumentResolver에서 supportsParameter에 지원하는것이 기본 스프링이 지원하는 Parameter말고도 ex)이런식으로 적으면 supportsParameter부분에 Member에 대한 객체가 등록이 된다는 말씀이신가요? 그리고 해당 부분을 지원하면 resolveArgument를 통해서 객체를 생성한다라고 이해하면될까요? @GetMapping("/members") public String answer(Member meber){ return "hello"; }

  • spring
  • mvc
잘열심히 댓글 1 좋아요 0 조회수 232

참조값 복사에 따른 인스턴스 동일성 질문

해결됨

김영한의 실전 자바 - 기본편

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 강의에서(12:00부분) 참조값만 복사하고 인스턴스를 복사하는 것이 아니라는데, 결국 같은 인스턴스를 접근하게 되잖아요 그러면 위 뜻이 인스턴스가 동일해지는 것은 맞지만, 참조값을 복사하는 것이지 인스턴스를 복사하는 것이 아니라서 잘못 인지하지 말라는 뜻인가요? 아니면 인스턴스가 달라서 참조값만 복사한 것이기에 인스턴스를 복사하는 것이 아니라는 뜻인가요? Data dataA = new Data(); // 1.Data인스턴스 생성후 dataA에 참조값 넣음 dataA.value = 10; Data dataB = dataA; // 2.dataA 참조값을 복사하고 대입함 System.out.println("dataA.value = " + dataA.value); // 10 System.out.println("dataB.value = " + dataB.value); // 10 // 3.dataB는 dataA의 인스턴스에 동일하게 접근하게됨

  • java
  • 객체지향
  • 인스턴스
  • 참조값
kyk 댓글 2 좋아요 0 조회수 488

Component로 핸들러 매핑에 핸들을 등록하는 과정에 대한 궁금점.

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요 학습을 하다가 조금 궁금한 점이 생겨서 질문드립니다. 제가 궁금한 점은 이전에 MVC를 사용하지 않은 방식에서는 직접 Map으로 핸들러 이름과 핸들을 핸들러 맵에 등록했는데 MVC를 사용하는 방식에서는 @Component("/springmvc/request-handler") 가 어노테이션 안에 있는 문자열이 key가 되고 핸들 객체가 value로 핸들 맵에 등록되는 것인가요? 답변 주시면 감사하겠습니다.

  • spring
  • mvc
  • 핸들러
  • 핸들맵
알알이 댓글 3 좋아요 0 조회수 357

form Import

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] java.lang.IllegalArgumentException: Name for argument of type [long] not specified, and parameter name information not available via reflection. Ensure that the compiler uses the '-parameters' flag. 이렇게 오류 떠서 @GetMapping("/{itemId}/edit") public String editForm(@PathVariable Long itemId, Model model) { Item item = itemRepository.findById(itemId); model.addAttribute("item", item); return "form/editForm"; } 위 부분을 @GetMapping("/{itemId}/edit") public String editForm(@PathVariable(name="itemId") Long itemId, Model model) { Item item = itemRepository.findById(itemId); model.addAttribute("item", item); return "form/editForm"; } 이렇게 @PathVariable(name="itemId") 속성을 모든 메소드에 적용 했더니 정상 동작합니다. 다만 어떤 설정을 해야 기존 코드 기대로 동작하는지 정말 궁금하네요 기존처럼 네임속성 안주고 하려면 따로 설정해야하는게 어떤걸까요?

  • spring
  • mvc
모네 댓글 1 좋아요 0 조회수 547

로그인 처리하기 - 세션 동작 방식 파트 질문입니다.

해결됨

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

중요한 정보는 모두 서버에 저장해야 한다고 써있는데, 만약 서버가 공격받게 된다면 이 정보가 모두 노출될텐데, 서버가 공격받는 것은 어떻게 예방할 수 있나요? 예시 몇 가지만 들어주시면 감사하겠습니다.

  • spring
  • mvc
바름이 댓글 1 좋아요 0 조회수 273

localhost에서 화면이 깨집니다.

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

수업을 듣고 혼자서 만들어 보는 중입니다 ㅠㅠ https://drive.google.com/file/d/1xmnERIQk89uE6iP8skTuS2jElKDXfPqp/view?usp=sharing 드라이브에 올린 제 파일입니다. save.html 파일이 절대경로로 브라우저에서 열면 문제 없이 열리는데 localhost:8080/member/save 로열면 화면이 깨집니다. css 경로도 정확한 거 같은데 왜 이러는걸까요 ㅠㅠ <link href="css/styles.css" rel="stylesheet" /> <link href="../templates/css/styles.css" rel="stylesheet" /> <link href="./css/styles.css" rel="stylesheet" /> 다 해봤습니다!! index.html을 제대로 잘 열립니다!! (index파일의 css를 복사해서 약간 수정 후 이름만 다르게 저장한게 save.css입니다)

  • spring
  • mvc
sorkdksi79 댓글 2 좋아요 0 조회수 411

인기 태그

인프런 TOP Writers

주간 인기글