반응형

[ @Setter(onMethod_ = @Autowired) Error ]


사진 출처 : https://cafe.naver.com/gugucoding

@Setter(onMethod_ = @Autowired)  에서 에러가 발생하였다. 

에러도움메시지에서는 버전에 따라 다르게 설정하는 방법을 알려주고 있었는데.. 그렇게 적용해도 해결될 기미가 안보였다.

책에서 제공해주는 카페에 들어가서 확인해보니

▶ jdk버전 일치(필자는 1.6에서 1.8로 변경하였다.)

▶ 이클립스(STS) -ini에 vm설정을 하였는가?

▶ lombok 라이브러리 설치 후 이클립스(STS) 실행 경로에 lombok.jar파일을 추가 하였는가?

lombok설치시 설치할 경로 선택...

▶ pom.xml에서..

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!-- lombok -->
<dependencies>
        
<!-- 생략 -->
        
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.0</version>
        <scope>provided</scope>
    </dependency>
        
<!-- 생략 -->
    
<dependencies>
cs

dependency 설정 해주었는가?

...

위의 방법 확인 후 Maven Update해보자.


몇시간 끙끙 앓던 에러가 깔끔하게 해결되었다!!

반응형
반응형

view에서 id를 입력한 후 submit을 누르면 다음페이지에 값이 뜨게 해보자.


우선 따로 컨트롤러를 만들지 않고 HomeController에 메소드만 추가하며 실행.

1. index 매핑

HomeController에서..

1
2
3
4
    @RequestMapping("/index")
    public String goIndex() {
        return "index";
    }
cs

이렇게 매핑해주기.

2. index.jsp

(파일 경로)

views 밑에 index.jsp파일 생성해준다.

index.jsp에는

form태그를 이용해서 text, submit 적어주기.

form의 method가 get방식이므로 controller에서 @RequestMapping될 때 method가 GET인 것으로 찾아간다.

(반대로 post일 경우 POST를 찾아감)


3. submit을 눌렀을 때 연결될 view페이지 생성

views 밑에 student폴더 만들어주고 그 밑에 studentView.jsp 생성

studentView에서는 index.jsp에서 넘겨준 값을 보여주는 역할만 한다.

studentView.jsp에 들어갈 내용..


4. 마지막으로 Controller에서 studentView.jsp 매핑을 해보자

하나하나씩 살펴보면..

1. student로 들어오는 값은 goStudent메서드와 연결시킨다.

2. GET방식으로 값을 받을것.

※ 만약 POST방식으로 값이 전달된다면.. 405에러가 뜬다.

3. HttpServletRequest로 넘어온 id값을 id변수에 저장.

4. model에 id 저장.

5. 클라이언트에게 studentView페이지를 보여줌


실행결과 확인

url을 확인해보면 index에 매핑되어 해당 view페이지가 나타난 것을 알 수 있다.

1234입력후 전송을 누르면..


GET방식으로 id의 값이 나타나고 studentView에서 뿌려진 값이 1234인 것을 알 수 있다.


405에러를 실험해보자.

index.jsp의 form method가 get인데.. 

controller에서 method를 post로 설정해주게 되면

405..ㅎㅎ


view는 건들이지 않고 컨드롤러에서만 GET인지 POST인지 구별하여 실행할 수 있게 작업해보자.

controller에서 


goStudent를 오버로딩 시키는데 

→ 리턴타입을 ModelAndView, 매개변수 Model을 지워버린다.

ModelAndView는 반환값으로 ModelAndView객체를 반환한다.

객체 반환할 때 여러가지 정보를 가지고 가는데..

▶ 뷰의 이름 설정 : mv.setViewName("뷰의 경로");

 데이터를 보낼 때 : mv.addObject("변수 이름", "데이터 값");


위와 같이 해주면 form의 method가 GET인지 POST인지 따로 구분하지 않고 실행할 수 있다.

반응형
반응형

STS에서 Spring MVC Project 생성하는 방법을 알아보자.


먼저 Package Explorer에서 우클릭 - new - Spring Legacy Project 선택


두 번째로, Project name 적어주고 아래 Templates에서 Spring MVC Project 선택하고 Next


아래와 같이 패키지 설정해주는 부분이 나타나는데 반드시 세 단어로 적어 주어야한다.

패키지 작성 규칙은..

만약 패키지 명을 olsh1108o.tistory.com이라 적을 경우

→ com.tistory.olsh1108o라고 적어 주어야 한다.


패키지명 설정 후 Finish 클릭 하면 project 생성 완료.


빌드가 끝나고 나서 프로젝트를 열어 pom.xml을 열어서 자바 버전과 스프링 버전을 변경 해주는 작업을 해보자.


자바 버전 수정

<java-version>1.6</java-version>을 <java-version>1.8</java-version> 로 변경

스프링 버전 수정

<org.springframework-version>3.1.1.RELEASE</org.springframework-version>을 

<org.springframework-version>5.0.3.RELEASE</org.springframework-version>로 변경

반응형

'Web > Spring' 카테고리의 다른 글

[Spring] Lombok : @Setter(onMethod_ = @Autowired) .. Error  (2) 2018.10.17
[Spring] Controller.. RequestMapping  (0) 2018.10.15
[Spring] import 프로젝트 BuildPath 수정  (0) 2018.10.11
[Spring] STS 인코딩 설정  (0) 2018.10.11
[Spring] 설치  (0) 2018.09.04
반응형

만약 프로젝트를 import한 후 빌드는 끝났지만 import한 프로젝트에 경고가 뜰 경우


프로젝트 우클릭 - Propeties - Java Build Path에서 두가지를 확인한다.


1. JRE System Library에서 버전확인

자신이 설치한 버전과 일치하는지 확인


2. 톰캣 실행 여부 확인

- 오른쪽에 Add Library 클릭

- Server Runtime 클릭

- 설치한 톰캣 추가해주기


※ 만약 톰캣이 없는 경우 Server Library [ 톰캣 버전 ] (unbound) 라고 뜬다.

이 경우 아래와 같이 설정해주기

Window - Preferences - Server - Runtime Environments - Add - 설치한 톰캣 버전 클릭 후 Next 

- Tomcat installation directory에서 설치한 경로 찾아서 설정 - Finish


반응형

'Web > Spring' 카테고리의 다른 글

[Spring] Controller.. RequestMapping  (0) 2018.10.15
[Spring] MVC Project 생성  (0) 2018.10.11
[Spring] STS 인코딩 설정  (0) 2018.10.11
[Spring] 설치  (0) 2018.09.04
[Spring] 한글 깨짐 설정  (0) 2018.09.04
반응형

기본 인코딩 utf-8로 변경


1. General - Workspace - Text File encoding 속성을 utf-8로 변경



2. General - Editors - Text Editors - Spelling - Encoding 속성을 utf-8로 변경


3. 3가지 을 utf-8로 변경

Web - Css Files


Web - HTML Files


Web-Jsp Files Encoding


반응형

'Web > Spring' 카테고리의 다른 글

[Spring] Controller.. RequestMapping  (0) 2018.10.15
[Spring] MVC Project 생성  (0) 2018.10.11
[Spring] import 프로젝트 BuildPath 수정  (0) 2018.10.11
[Spring] 설치  (0) 2018.09.04
[Spring] 한글 깨짐 설정  (0) 2018.09.04
반응형

부트스트랩 사용하는 방법


부트스트랩을 다운받아서 프로젝트에 적용시켜서 사용하는 방법과 

<head>태그에서 링크를 연결해서 사용하는 방법이 있다.


첫번째로 부트스트랩을 직접 다운받아서 사용하는 방법을 알아보자.


http://bootstrapk.com/ << 부트스트랩 홈페이지에 들어가자

부트스트랩 다운로드 버튼을 클릭한다.



부트스트랩 다운로드 를 클릭하면 zip파일이 다운로드 되고 zip파일 압축 해제 후 폴더에 들어가보면 


세개의 폴더가 있는데 저 폴더 세개를 복사해서

프로젝트 폴더 - src - main - webapp - resources 폴더에 붙혀넣기

두번째로 <head>태그 내에서 링크를 걸어 사용하는 방법을 알아보자.


부트스트랩 CDN은 서버에서 데이터를 직접 받아와서 쓸 수 있다.

마찬가지로 부트스트랩 다운로드 페이지로 가면 


아래에 보면 부트스트랩 CDN이 있고 박스 오른쪽에 copy를 눌러서 jsp <head>태그 안에 넣으면 된다.


uri주소를 긁어서 크롬 주소창에 입력해보면


api방식으로 제공을 해준다.


자, 그럼 직접 실습을 해보자


Spring Legacy Project 하나 생성 후


src - main - webapp - WEB-INF - views - home.jsp에서 작업을 할 것이다.

부트스트랩을 다운받아서 사용하려면 resources폴더에 부트스트랩 폴더 내에 있는 3개의 폴더를 복사해 준다.

CDN방식으로 하려면 위에서 설명한 것 처럼 <head>태그 내에 값을 넣어주자.


부트스트랩 적용 작업이 끝났다면 예시로 로그인 폼을 만들어보자

아래의 코드는 반응형 웹 로그인 폼이다.

(다른 기능 없이 오로지 view만 보이는 예시입니다.)



위의 코드로 실행시켜보면


만약 login-box의 배경 색상을 변경하고 싶다면 <head>태그에서

lime에 원하는 색상을 적어주면..



아래는 전체코드이다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ page session="false"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
 
<% request.setCharacterEncoding("UTF-8"); %>
<html>
<head>
<link rel="stylesheet"
    href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css"
    integrity="sha384-/Y6pD6FV/Vv2HJnA6t+vslU6fwYXjCFtcEpHbNJ0lyAFsXTsjBbfaDjzALeQsN6M"
    crossorigin="anonymous">
<script
    src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min.js"
    integrity="sha384-h0AbiXch4ZDo7tp9hKZ4TsHbi047NrKGLO3SEJAg45jXxnGIfYzk4Si90RDIqNm1"
    crossorigin="anonymous"></script>
    
<title>Home</title>
 
<meta charset="UTF-8">
<style type="text/css">
    .login-box{
        background-color: lime;
    }
</style>
</head>
<body>
    <div class="container">
        <div class="row">
            <div class="col-md-3">
                <div class="login-box">
                    <form role="form">
                        <legend>Login</legend>
                        <div class="form-group">
                            <label>아이디</label> <input type="text" class="form-control"
                                placeholder="아이디를 입력하세요">
                        </div>
                        <div class="form-group">
                            <label>비밀번호</label> <input type="password" class="form-control"
                                placeholder="비밀번호를 입력하세요">
                        </div>
                        <div class="form-group">
                            <input type="submit" class="btn btn-default btn-login-submit"
                                value="login"> <a href="#" class="btn btn-primary">회원가입</a>
                        </div>
 
                    </form>
                </div>
            </div>
        </div>
    </div>
</body>
</html>
 
cs


반응형

+ Recent posts