묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
MVC 프레임워크 만들기 v3 -> v4 리팩토링 질문입니다.
안녕하세요. Model 추가 - v3 단순하고 실용적인 컨트롤러 - v4v3 -> v4 리팩토링 의문이 생겨 질문드립니다.영한님의 위와 같은 설명은 충분히 이해와 공감이 가는 부분입니다.v3 -> v4 으로 리팩토링 중 v4의 Map<String, Object> model 항목이 ControllerV4 구현체 내 출력인수로 사용되는 것으로 보입니다.오히려 구현 과정에서 번거로운 부분은 제거 하였지만, 출력인수로 인한 혼란이 오지 않을까? 라는 생각이 되어 질문드립니다.v4 process 함수에서 2가지의 결과 값을 받는 형태로 보여집니다.process 함수의 실제 return 값 String(viewName)render에 필요한 Map<String, Object> model 값꼭 v3 -> v4 리팩토링 과정이 아닌 실제 현업에서 이와 비슷한 경우 어떠한 방식을 채택하여, 풀어가는지 궁금하여 질문드립니다.
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
service 오버라이드 할때 protected
HttpServlet 상속받고 service 메소드를 오버라이드할 때 꼭 protected로 하라고 하셨는데 이유를 알 수 있을까요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Hibernate 질문
강의 영상에서 보면 test 실행 시 콘솔창에 'Hibernate: insert into member(id, name) values(null, ?)'라는 SQL문이 뜨는데요.실제로 db에 요청되는 쿼리라면insert into member(id, name) values(null, spring)insert into member(id, name) values(null, spring100)이런식으로 떠야할 것 같은데, ? 라고 뜨는 이유가 있을까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
HelloController.java 에러
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]실행 시, 콘솔 창과 같은 에러 때문에 실행이 안 됩니다. JDK 19.0.1 버전을 사용하는데, 버전에 문제가 있는 것일까요? 아니면 다른 해결 방법이 있는 걸까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
assertThat 관련 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]assertThat메서드가 두 값을 비교할 때 사용된다는 건 알겠는데 구글링 해보니 assertThat(actual, isEqualTo(expected)) 이런식으로 actual와 expected이 들어갈 위치라고 나와있고 강의에선 반대 느낌으로 설명하는거 같아서요강의코드로 혹시 어떤 게 actual값이고 expected값인지 이해하면 될까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
오류(java.lang.IllegalStateException: java.lang.IllegalArgumentException: No DataSource specified)
강의와 똑같이 한 것 같은데 "No DataSource specified" 오류가 뜹니다ㅠㅠ
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
main/resources에서 basic 폴더 찾는 법 관련 질문
BasicItemController.java의 items()에서 return "basic/item";을 수행합니다.그리고 resources 폴더 하위는 다음과 같이 구성되어 있습니다.static > css폴더, html폴더templates > basic폴더return "basic/item"; 했을 때, basic폴더가 static이 아닌 templates폴더 하위에 있다는 것을 어떻게 아나요?static폴더에 있는지, templates폴더에 있는지 다 조회를 해보고 아는 것인가요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
직접 스프링 빈 등록하기 관련 질문
자바 코드로 직접 스프링 빈 등록하기에서 SpringConfig 파일에 코드를 작성하시는 부분을 보다가 궁금한게 생겨서 질문합니다.스프링 컨테이너에 빈을 등록한다는 것은 등록하고자하는 클래스의 실제 객체, 즉 인스턴스를 하나 생성하여 관리한다는 것으로 이해했는데요. 그럼 @Bean annotation을 붙이는 것은 빈으로 등록하겠다는 것을 명시하는 것을 나타내는 것 같은데, 꼭 메서드 형식으로 작성을 해야하는 것인가요? 예를 들어, 강의에 적혀있던 메서드 대신@Bean public MemberService memberService = new MemberService();위와 같이 변수 형태로 선언하면 안되는 것인가요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
th:text에 의해 대체되는 부분 관련 질문
items.html의 일부 코드입니다. <td><a th:text="${item.id}">회원id</a></td> <td><a th:text="${item.itemName}">상품명</a></td> <td th:text="${item.price}">10000</td> <td th:text="${item.quantity}">10</td>선생님께서는 th:text에 의해 대체될 부분에 '회원id', '상품명', '10000', '10'을 작성하셨습니다.사실 저는 어차피 대체될 부분이니까 비워둬야 겠다고 생각을 했었는데, (th:text에 대체되더라도) 무엇이 들어가는지를 작성해두는 것이 좋은가요?그렇다면 혹시 서버에서 렌더링되지 않고 브라우저로 바로 봤을 때 무엇이 들어가는지 알기 위함인 것인가요?서버를 거치지 않고 브라우저로 바로 봤을 때의 상황까지 고려해주는 것이 좋은가요??
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
타임리프에서 URL 표현하는 법
items.html의 일부 코드입니다. <link th:href="@{/css/bootstrap.min.css}"> <button th:onclick="|location.href='@{/basic/items/add}'|"></button>MVC2 강의의 타임리프 편을 듣고 왔는데요,쿼리 파라미터, 경로변수 없는 단순한 URL(ex. @{/hello} -> /hello)인 경우, @{} 없이 그냥 문자열로 다루면 안 되는 것인가요?타임리프에서 th:href로 경로를 작성할 때는 단순 경로일지라도 @{}로 경로를 작성하는 것이 원칙인가요?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@ModelAttribute Item item에 관한 질문(추가 수정)
앞선 질문내용이 잘못된것이 있어서 수정합니다.[질문 내용]@ModelAttribute는 지정된 객체를 생성하여, 요청 파라미터의 값을 해당 객체의 프로퍼티를 보고 입력해준다고 알고 있습니다.그리고 자동으로model.addAttribute("item", item);을 실행해 줄텐데 이때 모델에 담기는 item은기존에 업데이트하려는 item객체가 아니라 @ModelAttribute로 인해 새로 생성된 item을 넣어주게 되는 것 아닙니까?해당 모델을 return "/basic/item";으로 넘겨주게 되면 새로 생성된 item은 updateParam이기 때문에 id값이 없어서 예외가 발생하는 문제가 있습니다.따라서 redirect를 이용하여return "redirect:/basic/items/{itemId}"로 재요청을 하게되면 기존 model이 초기화 되고, itemId로 리포지토리에 있는 item을 찾고 해당 아이템을 model에 추가 하여"/basic/item" Html From으로 경로 이름을 반환하는 것으로 이해하면 될까요? (추가)리턴을 pathName으로 바로 해주어도item.id에 값이 제대로 들어가는 것으로 확인되는데Model에 담기는것은 updateParam 으로 id값이 없는 것으로 알고 있습니다. 어떻게 잘 작동하는지 궁금합니다.!
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
모델추가 부분에서 왜 에러가 뜨는지 잘모르겠습니다.
지금까지 잘 되다가 모델에 멤버객체를 집어넣는 부분에서 에러가 떠서 진행이 안되네요.. 구글에 쳐도 여거가지 시도를 해도 잘안되서 질문드립니다..
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
quantity 검증에 질문이 있습니다.
안녕하세요. 우선 좋은 강의 감사드립니다.수업을 따라 진행하다가, quantity 검증과 관련해 질문이 있습니다.일부러 수량(quantity)에 큰 값을 넣어봤는데요, 저장을 누르면 이 숫자를 문자로 인식하는 것 같습니다. 99999로 입력하면 올바른 에러가 발생하는데요, 캡쳐본에 있는 값으로 넣게 되면2023-01-23 12:23:56.797 WARN 21288 --- [nio-8080-exec-2] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 1 errorsField error in object 'item' on field 'quantity': rejected value [9999999999999]; codes [typeMismatch.item.quantity,typeMismatch.quantity,typeMismatch.java.lang.Integer,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [item.quantity,quantity]; arguments []; default message [quantity]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'java.lang.Integer' for property 'quantity'; nested exception is java.lang.NumberFormatException: For input string: "9999999999999"]]이러한 에러가 발생하게됩니다.혹시 이런 에러가 발생하는 이유가 있나요? 아 혹시 integer의 최대 숫자보다 커서 문자로 인식이되는건가요?감사합니다.
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
F12 개발자 도구 Headers에 왜 Form Data가 있는거죠?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강사님께서 F12(개발자 도구 창)을 띄워서 Form Data가 넘어오는걸 보여주셨는데그림을 보면 Headers 메뉴 안에 Form Data 가 있습니다.그런데 HTTP프로토콜에서 Form Data는 쿼리 스트링 형식으로 message body에 들어가서 전달 된다고 알고있는데 개발자 도구에서는 Headers메뉴에 있네용편의상 Headers메뉴에 message body값도 같이 넣은건지 제가 뭔가 잘못이해하고 있는 건지 궁금합니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
ItemRepository.java의 update() 메서드 관련 질문
public void update(Long itemId, Item updateParam) { Item findItem = store.get(itemId); findItem = updateParam; }update() 메서드 코드를 수정한 것인데,파라미터로 paramItemDto(id 없이 itemName, price, quantity로만 이뤄진 클래스)를 넘기는 것이 아니라 위와 같이 Item을 넘기는 경우라면, 코드를 이렇게 작성해도 괜찮은 것일까요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
스프링 필터 오류 페이지
안녕하세요 스프링 필터 오류 페이지 관련 궁금한 것이 있어 질문을 드립니다.스프링 필터 오류 페이지를 사용하면 오류가 발생하여 was에서 view를 부를 때 필터랑 인터셉터는 자동으로 안부르게 설정 되어져 있는건가요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
클래스 인식안됨 Truncated class file
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? y2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? yy3. 질문 잘하기 메뉴얼을 읽어보셨나요? y[질문 내용]여기에 질문 내용을 남겨주세요.Truncated class file 라는 에러가 뜹니다.하라는대로 다 하는중 이래도 안되네요 캐시도 삭제 그래도 같은 문제 발생 어떻게 해결해야하나요?? 진도가 1강에서 막혀버려서
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
파일 업로드 중 에러 발생
서블릿과 파일 업로드2 를 학습하던 중삭제가 불가능하다는 예외가 발생하면서여러 방법을 시도해도 해결되지 않아 문의 드립니다. 개발 환경window사용중인 스프링 부트 버전 : 2.7.8자바 언어 버전 : 11 properties 설정경로 설정은 위의 사진처럼 했습니다. 에러 로그를 보면 삭제를 할 수 없다고 뜨면서 예외가 발생합니다. 로그 속에 있는 경로로 들어가 직접 파일 제거 시도-> 서버가 내려갈 경우 파일이 삭제되는 것 확인 가능 해당 부분이 문제라고 생각됩니다.해결하기 위해 했던 노력관리자 권한으로 프로그램 실행결과 : 실패강의 자료 코드 그대로 옮겨 오기결과 : 실패강의 소스 코드 그대로 옮겨 오기결과 : 실패경로 바꿔 보기결과 실패총 4가지의 시도 결과 전부 실패해 문의 드립니다. 에러 발생 로그내가 생각하는 로그 핵심 문제 원인2023-01-22 21:42:00.789 WARN 31328 --- [nio-8080-exec-3] s.w.m.s.StandardServletMultipartResolver : Failed to perform cleanup of multipart items2023-01-22 20:48:55.796 ERROR 28536 --- [nio-7070-exec-3] o.apache.coyote.http11.Http11Processor : Error processing requestjava.io.UncheckedIOException: Cannot delete C:\Users\lgh94\AppData\Local\Temp\tomcat.7070.1452951454340902875\work\Tomcat\localhost\ROOT\upload_ee1add48_92d9_4d5b_8495_af18bb01c136_00000000.tmpat org.apache.tomcat.util.http.fileupload.disk.DiskFileItem.delete(DiskFileItem.java:431) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.catalina.core.ApplicationPart.delete(ApplicationPart.java:54) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.catalina.connector.Request.recycle(Request.java:483) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:441) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:891) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1784) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at java.base/java.lang.Thread.run(Thread.java:829) ~[na:na]Caused by: java.io.IOException: Cannot delete C:\Users\lgh94\AppData\Local\Temp\tomcat.7070.1452951454340902875\work\Tomcat\localhost\ROOT\upload_ee1add48_92d9_4d5b_8495_af18bb01c136_00000000.tmp... 13 common frames omitted2023-01-22 20:48:55.796 DEBUG 28536 --- [nio-7070-exec-3] o.apache.coyote.http11.Http11Processor : Error state [CLOSE_CLEAN] reported while processing requestjava.io.UncheckedIOException: Cannot delete C:\Users\lgh94\AppData\Local\Temp\tomcat.7070.1452951454340902875\work\Tomcat\localhost\ROOT\upload_ee1add48_92d9_4d5b_8495_af18bb01c136_00000000.tmpat org.apache.tomcat.util.http.fileupload.disk.DiskFileItem.delete(DiskFileItem.java:431) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.catalina.core.ApplicationPart.delete(ApplicationPart.java:54) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.catalina.connector.Request.recycle(Request.java:483) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:441) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:891) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1784) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at java.base/java.lang.Thread.run(Thread.java:829) ~[na:na]Caused by: java.io.IOException: Cannot delete C:\Users\lgh94\AppData\Local\Temp\tomcat.7070.1452951454340902875\work\Tomcat\localhost\ROOT\upload_ee1add48_92d9_4d5b_8495_af18bb01c136_00000000.tmp... 13 common frames omitted2023-01-22 20:48:55.798 ERROR 28536 --- [nio-7070-exec-3] o.a.coyote.http11.Http11NioProtocol : Error reading request, ignoredjava.io.UncheckedIOException: Cannot delete C:\Users\lgh94\AppData\Local\Temp\tomcat.7070.1452951454340902875\work\Tomcat\localhost\ROOT\upload_ee1add48_92d9_4d5b_8495_af18bb01c136_00000000.tmpat org.apache.tomcat.util.http.fileupload.disk.DiskFileItem.delete(DiskFileItem.java:431) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.catalina.core.ApplicationPart.delete(ApplicationPart.java:54) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.catalina.connector.Request.recycle(Request.java:483) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.catalina.connector.CoyoteAdapter.log(CoyoteAdapter.java:515) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:429) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:891) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1784) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at java.base/java.lang.Thread.run(Thread.java:829) ~[na:na]Caused by: java.io.IOException: Cannot delete C:\Users\lgh94\AppData\Local\Temp\tomcat.7070.1452951454340902875\work\Tomcat\localhost\ROOT\upload_ee1add48_92d9_4d5b_8495_af18bb01c136_00000000.tmp... 13 common frames omitted2023-01-22 20:48:55.799 ERROR 28536 --- [nio-7070-exec-3] org.apache.tomcat.util.net.NioEndpoint : Error running socket processorjava.io.UncheckedIOException: Cannot delete C:\Users\lgh94\AppData\Local\Temp\tomcat.7070.1452951454340902875\work\Tomcat\localhost\ROOT\upload_ee1add48_92d9_4d5b_8495_af18bb01c136_00000000.tmpat org.apache.tomcat.util.http.fileupload.disk.DiskFileItem.delete(DiskFileItem.java:431) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.catalina.core.ApplicationPart.delete(ApplicationPart.java:54) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.catalina.connector.Request.recycle(Request.java:483) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.catalina.connector.CoyoteAdapter.log(CoyoteAdapter.java:515) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.catalina.connector.CoyoteAdapter.checkRecycled(CoyoteAdapter.java:539) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.coyote.http11.Http11Processor.recycle(Http11Processor.java:1439) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.coyote.AbstractProtocol$ConnectionHandler.release(AbstractProtocol.java:1098) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:1056) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1784) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at java.base/java.lang.Thread.run(Thread.java:829) ~[na:na]Caused by: java.io.IOException: Cannot delete C:\Users\lgh94\AppData\Local\Temp\tomcat.7070.1452951454340902875\work\Tomcat\localhost\ROOT\upload_ee1add48_92d9_4d5b_8495_af18bb01c136_00000000.tmp... 14 common frames omitted
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
base.html에서 th:block을 div로 바꾸었을 때 관련 질문
base.html 코드 일부분입니다. <!-- 추가 --> <th:block th:replace="${links}" /> <div th:replace="${links}"></div>두 번째 줄은 th:block -> div로 바꾼 것입니다.th:replace로 인해서 <div> 코드가 2개의 <link>로 대체될 줄 알았는데, 아예 <div> 코드 자체가 출력이 안 되었습니다(소스코드 보기 했을 때).왜 태그가 대체되는 것이 아니라 아예 출력되지 않는 것인가요..??
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
base.html에서 일부 코드 변경 가능 여부 질문
base.html의 코드 일부입니다.<head th:fragment="common_header(title,links)"> <title th:replace="${title}">레이아웃 타이틀</title> ... <!-- 추가 --> <th:block th:replace="${links}" /> </head><title>을 넘기지 않았더니 exception이 발생했습니다.태그를 반드시 넘겨야 하는 것이라면, 그래서 <title>이 교체될 것이라면 위 코드에서 <title>, '레이아웃 타이틀'을 작성하지 않아도 되는 것가요?<title> 대신 큰 의미없는 <div>나 (5번째 줄에서 작성한) <th:block>을 사용해도 되는 것인가요?