[스압] STS + Gradle + jsp + webjar(jQuery,BootStrap) + 내가만든 css파일..


아. 이놈의 그래들 나를 몇주째 괴롭히는지 모르겠다..
maven만 깔짝 해본 왕초보인 나에게는 세팅부터가 너무너무 어렵다.

원래 만들어져있던 회사 프로젝트.. 웹쪽 세팅이 전혀 안되어있어서 그걸 하게되었는데
만든지 좀 되어서 그런지 버전도 안맞고.. 할튼 그거 맞춰보려고 2주 낭비하고 그냥 포기하고 새로 만들기로 결심했다. 근데 그것마저도 너무 어렵고.. ㅜㅜ

세팅하다가 암걸려 돌아가실거같다.



지금까지 한거 까먹기 전에 대충 적어보자면

1. 프로젝트 생성

Java Starter Project -> Gradle, War, Java8 선택하고 Next -> 내가 뭘 필요로 할지 모르니 일단 필요해보이는 Spring Boot Actuator, Spring Boot DevTool, Spring Data JPA, Spring Web 선택해서 프로젝트 생성!


2. build.gradle

    implementation 'org.apache.tomcat.embed:tomcat-embed-jasper' //jsp
    implementation group: 'javax.servlet', name: 'jstl', version: '1.2' //jstl
    implementationgroup: 'org.apache.tomcat.embed', name: 'tomcat-embed-jasper', version: '8.5.20' //내장 톰켓에서 jstl 인식하도록 추가
 
    //jquery, bootstrap 컴파일
    implementation group: 'org.webjars', name: 'jquery', version: '3.3.1'
    implementation group: 'org.webjars', name: 'bootstrap', version: '4.3.1'

    implementation group: 'com.h2database', name: 'h2', version: '1.3.148'
(springboot 에서 web과 jdbc를 옵션에서 선택하고 데이터베이스 설정을 하지 않고 실행하면 에러가 난다. 아직 디비 설정을 안해서 일단 오류 없이 서버를 구동하려면 추가해야함.)

build.gradle에서 내가 설정한 부분. dependencies 안에 이것들 넣어주면 된다.


3. src/main/resource/application.properties

spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
server.servlet.jsp.init-parameters.development=true

java에서 jsp호출할때 필요한거. 예전 버전에서는 config.java를 만들어서 자바코드로 넣어줬던 모양인데 그걸로 해도 되긴 되더라. 근데 deprecated래.


4. controller.java

    @RequestMapping(value = "/", method = RequestMethod.GET)
    public String hello() {
        return "hello";
    }

이녀석이 jsp페이지를 호출한다.

주의해야 할 점으로는 @SpringBootApplication 어노테이션이 붙은 클래스와 동일한 위치 또는 하위에 Controller 클래스를 생성해야 한다. Component Scan 할 때 Controller 클래스를 찾아서 자동으로 빈을 등록하기 때문이다.

출처: https://lelecoder.com/81 [lelecoder]



5. jsp

src -> main 밑에 webapp/WEB-INF/views 폴더를 만들고
hello.jsp를 만들어준다. 위 3번, 4번의 형광펜표시 확인!


6. webjar

webjar 홈페이지가서 찾아넣었는데 컴파일이 계속 안되더라..
결국 maven 홈페이지에 있는거 참고해서 넣었더니 됐다. (implementation으로안해도 되긴된다 아직은?)

2번에 적어둔게 이거다.

compile group: 'org.webjars', name: 'jquery', version: '3.3.1'
compile group: 'org.webjars', name: 'bootstrap', version: '4.3.1'

그리고 프로젝트 우클릭 -> Gradle -> Refresh Gradle Project!
Project and External Dependencies 폴더에 jquery, bootstrap 들어왔는지 확인해보고!

jsp파일에~~
<head> 태그 맨 밑에
<link rel="stylesheet" href="/webjars/bootstrap/4.3.1/css/bootstrap.min.css">
넣고,
<body> 태그 맨 밑에
<script src="/webjars/jquery/3.3.1/jquery.min.js"></script>

<script src="/webjars/bootstrap/4.3.1/js/bootstrap.min.js"></script>

얘들을 넣어주면 된다. 얘네들의 경로는 Project and External Dependencie 폴더에 jar파일 까보면 알 수 있다.



7. 대망의 내가 만든 css

아 원래는 그냥 응? 막 상대경로로 넣으면 바로 인식을 해야되는데
계속 못찾는거야.. 하 스트레스 모든 부분이 그냥 턱.. 턱.. 막힌다.

근데  어떤 지혜로운 개발자님께서 적어두신걸 그냥 지나칠뻔하다가 캐치해서 찾았다.


    - /src/main/resource/static   // 정적 파일들 추가(js, css 등..)
    - /src/main/resource/templates   // html 파일 추가

    출처: https://bkjeon1614.tistory.com/327 [아무거나]

그렇다! 그냥 jsp파일 있는 폴더에 갖다 박으면 안되는거였다!!
자세한 이유는.. 모르겠다..
하여튼 경로따라 폴더 생성해서 css파일 넣고
jap 파일 webjar link 밑에다
<link rel="stylesheet" type="text/css" href="/css/hello.css">
넣었더니 됩니다.. 돼요.. 흑흑....



괴롭다. 앞으로 괴로운 일이 훨씬 더 많을 예정이다.
PostGre도 붙이고.. 원래있던 프로젝트 회사 jar도 붙이고.. 하..


그래도 재미있다..

Comments

Popular posts from this blog

[Spring Boot] jsp파일에서 application.properties 값 바로 사용하기!!!

STS/이클립스 Java Virtual Machine Launcher 오류 (ini파일, jdk 수정해도 안될때)

1998년도 구룡초등학교 재학생을 찾습니다.