inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

실무에서 어떻게 사용하는지 질문입니다.

미해결

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

package hello.itemservice.web.validation; import hello.itemservice.domain.item.Item; import hello.itemservice.domain.item.ItemRepository; import hello.itemservice.domain.item.SaveCheck; import hello.itemservice.domain.item.UpdateCheck; import java.util.List; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.BindingResult; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.mvc.support.RedirectAttributes; @Slf4j @Controller @RequestMapping("/validation/v3/items") @RequiredArgsConstructor public class ValidationItemControllerV3 { private final ItemRepository itemRepository; @GetMapping("/{itemId}") public String item(@PathVariable long itemId, Model model) { Item item = itemRepository.findById(itemId); model.addAttribute("item", item); return "validation/v3/item"; } @GetMapping("/add") public String addForm(Model model) { model.addAttribute("item", new Item()); return "validation/v3/addForm"; } 클래스단의 리퀘스트 맵 마지막에 / 를 붙이는 것과 안 붙이는 것중 뭐가 정석인가요? 클래스단에서 @RequestMapping("/validation/v3/items/") 이렇게 한다면 메소드에는 전부 /를 빼고 add ,get 만 사용하면 될텐데 뭐가 암묵적인 룰(?) 인 것일까요 ?

  • spring
  • mvc
댓글 1 좋아요 0 조회수 517

@NotNull과 @NotBlank 사용 차이

미해결

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

@NotBlank는 null + 공백을 허용하지 않고 @NotNull은 null만 허용하지 않으니 빈칸은 입력을 허용인 것이 맞나요? 그렇다면 Integer 타입에는 @NoutNull을 붙이셨는데, 여기에는 어차피 빈칸이 들어가면 안되기 때문에 @NotBlank를 사용 하는게 낫지 않나요?? 어떤 의도로 @NotNull은 사용하셨는지 궁금합니다.

  • spring
  • mvc
댓글 1 좋아요 0 조회수 1785

강의를 보다 헷갈려서 질문입니다.

미해결

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

공부하다가 갑자기 @ModelAttribute의 작동 원리가 헷갈려서 웹에서 itemName, price, quantity만 파라미터로 넘기고 찍어봤는데 이렇게 나오는데요 그렇다면 1. @ModelAttribute가 붙은 객체 생성 2. 웹에서 넘어온 파라미터 중 @ModelAttribute가 붙은 객체에 주입할 수 있는 데이터 찾아서 주입 ( 없다면 null로 냅둠) 3. @ModelAttribute가 붙은 객체만 Model에 추가 이렇게 되는 건가요 ? 그럼 결국 Model에 자동적으로 추가 되는 건 @RequestParam이나 @ModelAttribute , @RequestBody 가 붙은 객체 or 변수들만이고, 웹에서 넘어오는 값들 중 저 애노테이션으로 붙지 않은 값들은 전부 폐기 되는 건가요?

  • spring
  • mvc
댓글 1 좋아요 0 조회수 485

필드 오류와 오브젝트 오류 관련

미해결

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

BindingResult.reject -> 오브젝트 오류 BingdingResult.rejectValue -> 필드 오류 이렇게 맞나요 ?? 그리고 파라미터로 넘겨줄 때 field가 @ModelAttribute로 받는 객체의 지역변수명을 뜻 하는 건가요 ? 오브젝트 오류는 종합적인 로직을 검증할 때 사용하고, 필드 오류는 사용자가 입력해서 넘어오는 파라미터(?) 에 문제가 있을 때 사용하는 거 같은데 자세하게 설명해주실 수 있을까요?

  • spring
  • mvc
댓글 1 좋아요 0 조회수 641

properties 파일 이름은 규칙인가요 >?

미해결

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

messages_##.properties ##에 들어가야 하는 단어는 영어면 en, 한국어면 kr과 같이 이름의 규칙이 정해져 있는 건가요 ? 그리고 ##에 아무것도 넣지 않는 messages.properties가 default로 선택되는 건가요 ?

  • spring
  • mvc
댓글 1 좋아요 0 조회수 583

프록시 객체 조회

미해결

스프링 핵심 원리 - 기본편

교안에 "ac.getBean("myLogger", MyLogger.class) 로 조회해도 프록시 객체가 조회되는 것을 확인할 수 있다."라고 나와 있어서 한번 만들어 봤는데 잘 안 되네요. ac.getBean을 다른 곳에서 해야 할까요? 어떻게 해야 확인할 수 있을까요?

  • spring
  • 객체지향
lwisekiml 댓글 1 좋아요 0 조회수 369

th:field 질문있습니다.

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. thfield를 사용하면 name과 id가 같은 값이 들어가는것으로 알고 있는데 <div th:each="region : ${regions}" class="form-check form-check-inline"> <input type="checkbox" th:field="*{regions}" 위 코드의 경우에는 name은 regions이며, id는 each가 되면서 regions1, regions2가 되는 이유가 궁금합니다.

  • spring
  • mvc
댓글 1 좋아요 0 조회수 423

getClass()와 .class의 차이

미해결

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

실수로 LogTestController.class 를 getLogger의 파라미터로 넣어줬더니 debug와 trace 의 로깅은 찍히지 않더라구요 getClass()를 파라미터로 넣으니 잘 되던데 어떤 차이가 있는 건가요 ?

  • spring
  • mvc
댓글 1 좋아요 0 조회수 911

15강 질문 드립니다!

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

15강 람다식 질문 드립니다! 선생님 안녕하세요! 15강에서 작성해주신 람다식이 있는데 람다식을 사용하지 않은 코드도 댓글로 알려주실 수 있으실까요~! 자바 공부를 시작한 지 얼마 되지 않아서 혼자 해보려 해도 잘 안되네요..! 부탁 드리겠습니다!! 감사합니다!

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
김한솔 댓글 1 좋아요 2 조회수 543

서블릿 내장객체 관련 질문 드립니다

미해결

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

저는 request, response가 서블릿 내장 객체라고 알고 있었는데요, 강의 내용에 따르면 request와 response는 요청마다 새로 생성되고 서블릿 객체는 요청마다 생성되지 않고 싱글톤으로 재사용한다고 알게 되었습니다. 그럼 서블릿 내장 객체와 서블릿 객체가 다른 것인가요? 지금까지는 서블릿 내장 객체라는 것이 서블릿 객체 안에 포함되어 있다고 생각했는데 이건 아닌 것 같고 .. 서블릿 컨테이너가 서블릿 객체를 관리하는 것이면 서블릿 내장 객체는 누가 관리해주나요? 서블릿 내장 객체와 서블릿 객체의 차이점을 알고 싶습니다.

  • spring
  • mvc
공태성 댓글 1 좋아요 0 조회수 585

V1과 V2의 차이

미해결

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

V1은 컨트롤러에서 바로 렌더링을 진행하는 거고 V2는 MyView 객체를 생성해서 MyView에서 렌더링을 진행하는데요 이러면 얻는 이점이 뭐가 있나요? 코드만 더 작성해야되는데 손해 아닌가요 ?

  • spring
  • mvc
댓글 1 좋아요 0 조회수 644

Map에 들어가는 ControllerV1 객체

미해결

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

는 싱글톤이 아닌 것인가요 ? 스프링 빈으로 저장도 안해줬고, static을 선언해서 클래스 변수도 아닌데 이럴 경우에는 호출 할 때마다 ControllerV1 객체가 생성되고 process를 진행되는 형식인가요 ?

  • spring
  • mvc
댓글 1 좋아요 0 조회수 605

데코레이터 구성 시 AOP를 사용해도 되는가

미해결

스프링 핵심 원리 - 고급편

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요. 강의 잘 듣고 있습니다. 질문은 "단순 데코레이터를 만들고 싶을 때 SpringAOP를 사용해도 되는가?"입니다. 질문 매뉴얼의 답이 없는 질문에 포함되는 것 같아 부가설명을 적어보겠습니다. 개인적으로 이전부터 관심사와 의존성을 분리하고 싶어 데코레이터 패턴을 한번씩 쓸 때가 있었습니다. 예를 들면 다음과 같습니다. 게시글이 작성되면 특정 유저들에게 알림 메세지를 전송해야 한다. 게시글이 수정되면 읽기 전용 모델의 캐시를 갱신해야 한다. 그럼 [컨트롤러 - 알림데코레이터 - 캐시데코레이터 - 서비스 - 리포지토리 ]가 되는 거죠. 이 때 데코레이터-서비스 체인을 구성해야 하는데 2가지 방법이 있었습니다. @Configuration에서 매뉴얼하게 체인 구성한 뒤 빈 생성 가장 앞단의 데코레이터에 Primary를 달고 이후 순서에 따라 생성자 파라미터 주입시 @Qualifier로 구현체 주입 1번 같은 경우에는 각 데코레이터마다 의존성이 많아질 수록 작성해야 하는 코드가 많아져서 제외를 했습니다. 그래서 2번 방법을 사용하고 있고 다음과 같은 문제를 대면했습니다. 특정 구현체가 뒷 순서 구현체를 알아야 한다. (의존성 발생) 그것도 컴파일 에러가 나지 않는 문자열(빈 이름)의 형태로. public class PostServiceMessageDecorator implements PostService { private final PostService postService; public PostServiceMessageDecorator( @Qualifier("postServiceCacheDecorator") PostService postService ) { this.postService = postService; } } 체인 순서를 구성하는 것이 다소 번거롭고, 순서가 변경되거나 추가, 제거되면 코드를 바꿔야 한다. (다시 한 번 컴파일 에러가 나지 않는 문자열의 형태로) 서비스 내에서 데코레이터가 붙지 않는 메소드도 구현을 해줘야 한다. 그런데 SpringAOP를 사용하면 3가지 문제를 모두 해결할 수 있는 것이 아닌가 하는 생각이 듭니다. 포인트컷도 잡는 것만 잡으면 되니까 데코레이터가 굳이 안붙어도 되는 메소드를 구현할 필요도 없구요. Order로 순서도 간편하게 변경이 가능하니까요. 앞서 강의에서 패턴은 의도가 중요하지 실제 구현체는 다양한 방법으로 구현될 수 있다고 하신 말씀이 머릿속에 맴도는데... Aspect를 만들고 네이밍만 EntityServiceSomethingDecorator 라고 이름만 붙이면 되는게 아닌가 하는 생각이 듭니다. 그러나 이 방법을 사용하는데 약간의 거부감이 있는데 AOP가 태생적으로 횡단 관심사를 해결하기 위한 기술이라는 사실 때문입니다. 저는 흩어져 있는 공통 관심사 코드를 여기 저기 작성하지 않고 한 군데에서 작성하도록 한 게 개발 의도라고 생각했거든요. 하지만 예시의 경우는 흩어져 있는 관심사가 아니라 특정 로직에 부가 로직을 몇 개 붙였다 뗐다 하고 싶을 뿐입니다. 그렇다면 단순 데코레이터를 만들기 위해 SpringAOP를 사용하는 것은 SpringAOP의 개발 의도와는 약간 다른 사용법이 될 수 있고, 보통 특정 기능을 개발 의도와 다른 방향으로 사용하면 예상하지 못한 부작용이 발생하더라구요. 이 지점에서 혹시 인사이트를 얻을 수 있을지 질문을 올려봅니다. 질문을 조금 다르게 얘기하면 "특정 메서드 혹은 클래스만을 위한 Aspect를 만들어도 되는가?"가 되겠네요. 만약 이 경우에 AOP사용은 지양하는 것이 좋다고 생각하신다면, 매뉴얼하게 데코레이터 클래스를 작성하는 것 외에 권장하실만한 방법이 있을까요?

  • spring
  • 디자인-패턴
모기물림 댓글 2 좋아요 1 조회수 673

distinct를 적용하지 않았을 때의 결과 관련

해결됨

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

강의를 중간에 distinct를 적용하지 않으면 포스트맨에서 결과가 중복되게 나오고, 쿼리도 inner join으로 되어야 하는데 이상합니다ㅜ 코드가 모두 동일한데, 콘솔에 찍어봐도 4건이 아닌 2건 밖에 조회가 되지 않고 결과도 2건으로 나옵니다.. 또한, 강의에서는 inner join이 나가는데 제 코드는 join이 나갑니다..뭐가 문제일까요?

  • java
  • spring
  • spring-boot
  • jpa
yjw9424 댓글 4 좋아요 3 조회수 858

"item.orderItems[0].item.name" 질문 관련

미해결

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

https://drive.google.com/file/d/1OKpCQpwYWvWjppEIcvzWpSZKy09GAivy/view?usp=sharing 위에는 구글 압축 파일입니다. 다음은 에러 내용입니다. Caused by: org.attoparser.ParseException: Exception evaluating SpringEL expression: "item.orderItems[0]. item.name " (template: "order/orderList" - line 46, col 21) Caused by: org.springframework.expression.spel.SpelEvaluationException: EL1025E: The collection has '0' elements, index '0' is invalid 야생형 코스로 들으려고 하다보니 에러난 부분을 고치기가 어렵고 다른 분들도 같은 질문을 많이 하셨어서, 질문들도 다 확인해보고 저의 코드에서도 해당 부분들을 유심히 보았으나 에러를 잡지 못해서 질문드렸습니다. 위의 에러코드 내용을 미루어보아 orderItems의 값이 null이어서 화면에 나오지 않는다고 생각하여서 그 부분을 확인해보았는데, null로 출력되는 것은 확인하였습니다. html코드의 문제인가 싶어 코드도 계속 확인해보고, 선생님께서 제공해주신 코드파일에 있는 html을 그대로 복사해서 실행해보았는데도 수정이 되지 않아서 질문드렸습니다. 감사합니다. Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. Tue Mar 28 19:44:33 KST 2023 There was an unexpected error (type=Internal Server Error, status=500). An error happened during template parsing (template: "class path resource [templates/order/orderList.html]") org.thymeleaf.exceptions.TemplateInputException: An error happened during template parsing (template: "class path resource [templates/order/orderList.html]") at org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parse( AbstractMarkupTemplateParser.java:241 ) at org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parseStandalone( AbstractMarkupTemplateParser.java:100 ) at org.thymeleaf.engine.TemplateManager.parseAndProcess( TemplateManager.java:666 ) at org.thymeleaf.TemplateEngine.process( TemplateEngine.java:1103 ) at org.thymeleaf.TemplateEngine.process( TemplateEngine.java:1077 ) at org.thymeleaf.spring6.view.ThymeleafView.renderFragment( ThymeleafView.java:372 ) at org.thymeleaf.spring6.view.ThymeleafView.render( ThymeleafView.java:192 ) at org.springframework.web.servlet.DispatcherServlet.render( DispatcherServlet.java:1415 ) at org.springframework.web.servlet.DispatcherServlet.processDispatchResult( DispatcherServlet.java:1159 ) at org.springframework.web.servlet.DispatcherServlet.doDispatch( DispatcherServlet.java:1098 ) at org.springframework.web.servlet.DispatcherServlet.doService( DispatcherServlet.java:974 ) at org.springframework.web.servlet.FrameworkServlet.processRequest( FrameworkServlet.java:1011 ) at org.springframework.web.servlet.FrameworkServlet.doGet( FrameworkServlet.java:903 ) at jakarta.servlet.http.HttpServlet.service( HttpServlet.java:537 ) at org.springframework.web.servlet.FrameworkServlet.service( FrameworkServlet.java:885 ) at jakarta.servlet.http.HttpServlet.service( HttpServlet.java:631 ) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:205 ) at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:149 ) at org.apache.tomcat.websocket.server.WsFilter.doFilter( WsFilter.java:53 ) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:174 ) at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:149 ) at org.springframework.web.filter.RequestContextFilter.doFilterInternal( RequestContextFilter.java:100 ) at org.springframework.web.filter.OncePerRequestFilter.doFilter( OncePerRequestFilter.java:116 ) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:174 ) at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:149 ) at org.springframework.web.filter.FormContentFilter.doFilterInternal( FormContentFilter.java:93 ) at org.springframework.web.filter.OncePerRequestFilter.doFilter( OncePerRequestFilter.java:116 ) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:174 ) at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:149 ) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal( CharacterEncodingFilter.java:201 ) at org.springframework.web.filter.OncePerRequestFilter.doFilter( OncePerRequestFilter.java:116 ) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:174 ) at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:149 ) at org.apache.catalina.core.StandardWrapperValve.invoke( StandardWrapperValve.java:166 ) at org.apache.catalina.core.StandardContextValve.invoke( StandardContextValve.java:90 ) at org.apache.catalina.authenticator.AuthenticatorBase.invoke( AuthenticatorBase.java:493 ) at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:115 ) at org.apache.catalina.valves.ErrorReportValve.invoke( ErrorReportValve.java:93 ) at org.apache.catalina.core.StandardEngineValve.invoke( StandardEngineValve.java:74 ) at org.apache.catalina.connector.CoyoteAdapter.service( CoyoteAdapter.java:341 ) at org.apache.coyote.http11.Http11Processor.service( Http11Processor.java:390 ) at org.apache.coyote.AbstractProcessorLight.process( AbstractProcessorLight.java:63 ) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process( AbstractProtocol.java:894 ) at org.apache.tomcat.util.net .NioEndpoint$SocketProcessor.doRun( NioEndpoint.java:1741 ) at org.apache.tomcat.util.net.SocketProcessorBase.run ( SocketProcessorBase.java:52 ) at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker( ThreadPoolExecutor.java:1191 ) at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run( ThreadPoolExecutor.java:659 ) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run( TaskThread.java:61 ) at java.base/java.lang.Thread.run( Thread.java:833 ) Caused by: org.attoparser.ParseException: Exception evaluating SpringEL expression: "item.orderItems[0]. item.name " (template: "order/orderList" - line 46, col 21) at org.attoparser.MarkupParser.parseDocument( MarkupParser.java:393 ) at org.attoparser.MarkupParser.parse( MarkupParser.java:257 ) at org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parse( AbstractMarkupTemplateParser.java:230 ) ... 48 more Caused by: org.thymeleaf.exceptions.TemplateProcessingException: Exception evaluating SpringEL expression: "item.orderItems[0]. item.name " (template: "order/orderList" - line 46, col 21) at org.thymeleaf.spring6.expression.SPELVariableExpressionEvaluator.evaluate( SPELVariableExpressionEvaluator.java:292 ) at org.thymeleaf.standard.expression.VariableExpression.executeVariableExpression( VariableExpression.java:166 ) at org.thymeleaf.standard.expression.SimpleExpression.executeSimple( SimpleExpression.java:66 ) at org.thymeleaf.standard.expression.Expression.execute( Expression.java:109 ) at org.thymeleaf.standard.expression.Expression.execute( Expression.java:138 ) at org.thymeleaf.standard.processor.AbstractStandardExpressionAttributeTagProcessor.doProcess( AbstractStandardExpressionAttributeTagProcessor.java:144 ) at org.thymeleaf.processor.element.AbstractAttributeTagProcessor.doProcess( AbstractAttributeTagProcessor.java:74 ) at org.thymeleaf.processor.element.AbstractElementTagProcessor.process( AbstractElementTagProcessor.java:95 ) at org.thymeleaf.util.ProcessorConfigurationUtils$ElementTagProcessorWrapper.process( ProcessorConfigurationUtils.java:633 ) at org.thymeleaf.engine.ProcessorTemplateHandler.handleOpenElement( ProcessorTemplateHandler.java:1314 ) at org.thymeleaf.engine.OpenElementTag.beHandled( OpenElementTag.java:205 ) at org.thymeleaf.engine.Model.process( Model.java:282 ) at org.thymeleaf.engine.Model.process( Model.java:290 ) at org.thymeleaf.engine.IteratedGatheringModelProcessable.processIterationModel( IteratedGatheringModelProcessable.java:368 ) at org.thymeleaf.engine.IteratedGatheringModelProcessable.process( IteratedGatheringModelProcessable.java:222 ) at org.thymeleaf.engine.ProcessorTemplateHandler.handleCloseElement( ProcessorTemplateHandler.java:1640 ) at org.thymeleaf.engine.TemplateHandlerAdapterMarkupHandler.handleCloseElementEnd( TemplateHandlerAdapterMarkupHandler.java:388 ) at org.thymeleaf.templateparser.markup.InlinedOutputExpressionMarkupHandler$InlineMarkupAdapterPreProcessorHandler.handleCloseElementEnd( InlinedOutputExpressionMarkupHandler.java:322 ) at org.thymeleaf.standard.inline.OutputExpressionInlinePreProcessorHandler.handleCloseElementEnd( OutputExpressionInlinePreProcessorHandler.java:220 ) at org.thymeleaf.templateparser.markup.InlinedOutputExpressionMarkupHandler.handleCloseElementEnd( InlinedOutputExpressionMarkupHandler.java:164 ) at org.attoparser.HtmlElement.handleCloseElementEnd( HtmlElement.java:169 ) at org.attoparser.HtmlMarkupHandler.handleCloseElementEnd( HtmlMarkupHandler.java:412 ) at org.attoparser.MarkupEventProcessorHandler.handleCloseElementEnd( MarkupEventProcessorHandler.java:473 ) at org.attoparser.ParsingElementMarkupUtil.parseCloseElement( ParsingElementMarkupUtil.java:201 ) at org.attoparser.MarkupParser.parseBuffer( MarkupParser.java:725 ) at org.attoparser.MarkupParser.parseDocument( MarkupParser.java:301 ) ... 50 more Caused by: org.springframework.expression.spel.SpelEvaluationException: EL1025E: The collection has '0' elements, index '0' is invalid at org.springframework.expression.spel.ast.Indexer$CollectionIndexingValueRef.growCollectionIfNecessary( Indexer.java:700 ) at org.springframework.expression.spel.ast.Indexer$CollectionIndexingValueRef.getValue( Indexer.java:664 ) at org.springframework.expression.spel.ast.Indexer.getValueInternal( Indexer.java:102 ) at org.springframework.expression.spel.ast.CompoundExpression.getValueRef( CompoundExpression.java:61 ) at org.springframework.expression.spel.ast.CompoundExpression.getValueInternal( CompoundExpression.java:91 ) at org.springframework.expression.spel.ast.SpelNodeImpl.getValue( SpelNodeImpl.java:112 ) at org.springframework.expression.spel.standard.SpelExpression.getValue( SpelExpression.java:338 ) at org.thymeleaf.spring6.expression.SPELVariableExpressionEvaluator.evaluate( SPELVariableExpressionEvaluator.java:265 ) ... 75 more

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
c880910 댓글 1 좋아요 1 조회수 776

index.html 질문입니다 ㅠ

해결됨

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

hello서블릿 강의 이제 막 듣기 시작했는데 webapp디렉토리를 만들고 index.html을 작성하였을 때 왜 localhost:8080/index.html이 아닌 localhost :8080으로 입력하여도 index.html이 열리는지 이유를 말씀해주시지 않았는데 왜그런지 알 수 있을까요?

  • spring
  • mvc
댓글 1 좋아요 0 조회수 466

a href 태그 관련질문입니다.

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. home.html 에 <a href="/members/new">회원 가입</a> 여기서 /members/new 가 localhost:8080/members/new 로 연결이 되는 것 같은 데 어떻게 가능한건지 잘 모르겠습니다. /members/new 는 절대경로로 알고 있는데 프로젝트 폴더에는 이러한 폴더가 없습니다.

  • java
  • spring
  • mvc
  • spring-boot
김서진 댓글 3 좋아요 0 조회수 456

생성 메서드, 빌더 패턴, 생성자

해결됨

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

안녕하세요 선생님!! 항상 좋은 강의 해주셔서 감사드립니다 :) 강의에서 new 생성자를 못쓰도록 생성자를PROTECTED로 막으시고 생성 메서드만 사용하도록 하셨는데요. 프로젝트를 진행할 경우나 실무에서 생성 메서드만 통일해서 사용하는 것이 좋을까요 아님 아래 예시와 같이 생성 메서드와 빌더 패턴 둘 다 혼합해서 사용해도 괜찮을까요? Order 클래스의 생성 메서드에서 Setter를 안쓰고 예시와 같이 생성자를 사용해도 괜찮을까요? 감사합니다! Item @Builder private Item(String name, int price, int stockQuantity) { this.name = name; this.price = price; this.stockQuantity = stockQuantity; } Order private Order(OrderStatus status, Member member) { this.status = status; this.member = member; this.orderDate = LocalDateTime.now(); } public static Order createOrder(OrderStatus status, Member member, OrderItem... orderItems) { Order order = new Order(status, member); for (OrderItem orderItem : orderItems) { order.addOrderItem(orderItem); } return order; }

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
심우민 댓글 1 좋아요 0 조회수 654

스프링, 스프링부트,배치, JPA, MVC, 디자인 패턴 등등 어떻게 공부 해야 할지 조언 부탁드립니다

해결됨

토비의 스프링 부트 - 이해와 원리

안녕하세요 토비님 강의 잘 들었습니다~ 오늘 새벽에 토비님 유투브를 일부 보다 보니 오라클 레퍼런스 사이트가 잘되어 있으니 보시면 웬만한 책보다 잘되있고 유용하다고 말씀하시더라구요 토비님이 선배 개발자 로서 학생분들, 후배 개발자 동료 분들이 스프링, 스프링부트,배치, JPA, MVC, 디자인 패턴 등등 어떻게 공부 해야 할지 추천 조언 부탁 드립니다 좋은 유튜브나, 강의사이트, 블로그, 서적 등이 공부하고 참고 할 수 있는 부분들이요 부끄럽지 않은 개발자가 되고 싶고 지금 보다 더 성장하고 싶습니다 ( 요즘 올리시는 유튜브에 타임어택 잘 보고 있습니다 ) -.토비님을 존경하고 사랑하는 후배 개발자가.. #spring-boot #spring #스프링 #스프링부트 #JPA #MVC #추천 #공부 #방법 #조언

  • spring
  • spring-boot
  • spring-jdbc
주아아빠 댓글 1 좋아요 6 조회수 1079

인기 태그

인프런 TOP Writers

주간 인기글