반응형

<form>

    <button onclick='func()'>다른버튼</button>

</form>

 

이런식으로 버튼이 폼 안에 있을 때

버튼을 눌렀을 때 onclick에 정의된 펑션이 동작하지 않고 form 의 submit 펑션이 실행되는데

자동으로 submit 되는걸 방지하고 다른 동작을 실행시키고 싶으시다면

 

 

<form>

    <button type='button' onclick='func()'>다른버튼</button>

</form>

 

이런식으로 버튼에 타입을 버튼으로 주면 해결됩니다.

 

반응형
반응형

setTimeout( function(){ $(window).focus(); }, 50 );

 

이런식으로 setTimeout 안에 포커스를 두면 잘 동작 합니다.

 

크롬에서만 일어나는 버그라고 하네요

 

stackoverrun.com/ko/q/10593877

 

javascript - $ (창) .focus()가 Chrome에서 제대로 실행되지 않았습니다.

내 페이지의 애드 센스 요소에 대한 클릭 수를 추적하고 싶습니다. 이를 달성하기 위해 창 개체에 포커스를두고 포커스가 사라지면 마우스가 애드 센스 iFrame 영역에 있는지 확인합니다. 그런 다

stackoverrun.com

 

반응형
반응형

정리가 잘 된 블로그가 있어서 첨부합니다.

 

crosstheline.tistory.com/41

 

JQuery 노드찾기

1. 노드 찾기  - 태그 이름으로 노드 찾기 :  $("태그이름"), $("선택자")  - 클래스 이름으로 노드 찾기 : $(".클래스이름")  - ID로 노드 찾기 : $("선택자")  - 속성으로 노드 찾기 : $("[속성이름=값]").

crosstheline.tistory.com

 

반응형
반응형

postgresql 에는 generate_series 라는 함수가 있다.

 

대략

 

SELECT generate_series(시작, 종료, 간격)

(간격은 생략가능)

 

의 문법으로 쓰인다.

 

예를들어

 

1

select generate_series(1, 100)

cs

이렇게 쓰면

1부터 100까지 1씩 증가하는 데이터가 만들어진다.

 

만약

 

1

select generate_series(1, 100, 5)

cs

이런식으로 간격을 설정하게 되면

 

이런 데이터가 나오게 된다.

 

이 generate_series 를 이용하여 날짜 데이터를 생성할 수 있는데

사용법은 다음과 같다.

 

우선 시작날짜와 종료 날짜 사이의 데이터를 뽑고 싶다면

 

1

select generate_series('2020-01-01'::date , '2020-12-31'::date, '1 day'::interval)::date

cs

이렇게 하면 2020년 1월 1일 부터

2020년 12월 31일까지

하루 간격으로 데이터가 출력되고

 

 

1

select generate_series('2020-01-01'::date , '2020-12-31'::date, '1 month'::interval)::date

cs

이렇게 하면 한달 단위

 

그리고

1

select generate_series('2020-01-01'::date , '2020-12-31'::date, '7 day'::interval)::date

cs

이렇게 하면 일주일 단위의 날짜 데이터가 생성이 된다

 

그리고 만약

시작 종료 일자가 아닌

시작일로부터 몇일뒤의 날짜가 알고 싶다면

 

1

2

3

4

5

6

7

8

SELECT (ROW_NUMBER() OVER()) AS ROWNUM,

        a.date + b.idx as D 

FROM ( 

        SELECT '2020-01-01'::date as date 

) a 

CROSS JOIN ( 

    SELECT generate_series(0, 100) as idx 

) b

Colored by Color Scripter

cs

이런식으로 날짜 데이터 생성이 가능하다

이걸 응용하면

시작일로부터 n일이 지난 날짜의 월 데이터를 추출할 수도 있다.

 

1

2

3

4

5

6

7

8

9

10

11

12

SELECT DISTINCT to_char(D, 'YYYY-MM') AS date

FROM (

    SELECT (ROW_NUMBER() OVER()) AS ROWNUM,

            a.date + b.idx as D 

    FROM ( 

            SELECT '2020-01-01'::date as date 

    ) a 

    CROSS JOIN ( 

        SELECT generate_series(09999) as idx 

    ) b) T

WHERE D::date <= to_date('2020-12','YYYY-MM')::date

ORDER BY date

Colored by Color Scripter

cs

반응형
반응형

이 글은 

https://dzzienki.tistory.com/66

 

Eclipse Dynamic Web Project로 Spring Maven 프로젝트 만들기

이번 포스팅에서는 STS 나 egovframework 를 사용하지 않고 이클립스에서 Dynamic Web Project 를 이용하여 Spring Maven 기반의 웹 프로젝트를 만들어 보도록 하겠습니다. 이 포스팅의 목적은 가장 기본적인 �

dzzienki.tistory.com

이 포스팅의 마지막 부분에서 이어집니다.

 

tiles 라는 것은 말 그대로 화면을 조각들로 분할하여 사용할 수 있도록 도와주는 프레임워크 입니다.

예를들어 인터넷 카페나 블로그 등을 생각 해 보시면

화면이 상단메뉴, 좌측 혹은 우측 메뉴, 콘텐츠 부분, 하단메뉴

이렇게 나누어져 있는 것을 보신 적이 있으실 겁니다.

그걸 각각의 jsp 로 나누어 관리하기 편하도록 도와주는 툴이 바로 tiles 입니다.

 

타일즈를 사용하기 위해선 우선 pom.xml 에 다음 dependency 를 추가해주셔야 합니다.

 

코드는 아래쪽의 것을 복사하시면 되구요

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

<!-- tiles -->

    <dependency>

        <groupId>org.apache.tiles</groupId>

        <artifactId>tiles-jsp</artifactId>

        <version>3.0.8</version>

    </dependency>

    

    <dependency>

        <groupId>org.apache.tiles</groupId>

        <artifactId>tiles-servlet</artifactId>

        <version>3.0.8</version>

    </dependency>

    

    <dependency>

        <groupId>org.apache.tiles</groupId>

        <artifactId>tiles-extras</artifactId>

        <version>3.0.8</version>

    </dependency>

    <!-- /tiles -->

    

    

    <dependency>

        <groupId>javax.servlet</groupId>

        <artifactId>jstl</artifactId>

        <version>1.2</version>

    </dependency>

Colored by Color Scripter

cs

그 다음으로는 

src/main/resources/spring/servlet-context.xml 에

아래의 내용을 추가해주셔야 합니다.

코드는 아래의 것을 복사하시면 됩니다.

1

2

3

4

5

6

7

8

9

10

11

12

13

    <!-- Tiles -->

    <beans:bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">

        <beans:property name="definitions">

            <beans:list>

                <beans:value>/WEB-INF/tiles/tiles.xml</beans:value>

            </beans:list>

        </beans:property>

    </beans:bean>        

    <beans:bean id="tilesViewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">

        <beans:property name="viewClass" value="org.springframework.web.servlet.view.tiles3.TilesView" />

        <beans:property name="order" value="1" />

    </beans:bean>   

    <!-- /Tiles -->

Colored by Color Scripter

cs

 

다음은 tiles 의 설정 파일을 만들어 주어야 합니다.

위의 <beans:value>/WEB-INF/tiles/tiles.xml</beans:value>

이부분에 보시면 WEB-INF아래에 tiles라는 폴더 아래에 tiles.xml

이라는 파일 안에 설정파일을 넣어주겠다 라는 뜻이니

저 경로에 정확하게 파일을 tiles.xml 이라는 파일을 만들어 주시고

아래와 같이 작성을 해 줍니다.

코드 내용은 아래 코드를 복사하시면 됩니다.

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

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE tiles-definitions PUBLIC

  "-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN"

  "http://tiles.apache.org/dtds/tiles-config_3_0.dtd">

 

<tiles-definitions>

 

    <!-- 메뉴 표시 -->

    <definition name="base" template="/WEB-INF/tiles/template.jsp">

        <put-attribute name="left"   value="/WEB-INF/tiles/left.jsp" />

        <put-attribute name="header" value="/WEB-INF/tiles/header.jsp" />

        <put-attribute name="footer" value="/WEB-INF/tiles/footer.jsp" />

    </definition>

 

    <definition name="*.page" extends="base">

        <put-attribute name="body" value="/WEB-INF/jsp/{1}.jsp" />

    </definition>

 

     <definition name="*/*.page" extends="base">

         <put-attribute name="body" value="/WEB-INF/jsp/{1}/{2}.jsp" />

     </definition>

    

    <definition name="*/*/*.page" extends="base">

        <put-attribute name="body" value="/WEB-INF/jsp/{1}/{2}/{3}.jsp" />

    </definition>

    

    

    <!-- 메뉴 미표시 -->

    <definition name="baseEmpty" template="/WEB-INF/jsp/templateEmpty.jsp">

    </definition>

    

    <definition name="*.part" extends="baseEmpty">

        <put-attribute name="body" value="/WEB-INF/jsp/{1}.jsp" />

    </definition>

 

     <definition name="*/*.part" extends="baseEmpty">

         <put-attribute name="body" value="/WEB-INF/jsp/{1}/{2}.jsp" />

     </definition>

    

    <definition name="*/*/*.part" extends="baseEmpty">

        <put-attribute name="body" value="/WEB-INF/jsp/{1}/{2}/{3}.jsp" />

    </definition>        

    

</tiles-definitions>

Colored by Color Scripter

cs

위의 tiles.xml 에 작성한

 template="/WEB-INF/tiles/template.jsp"

attribute name="left"   value="/WEB-INF/tiles/left.jsp"

attribute name="header" value="/WEB-INF/tiles/header.jsp"

attribute name="footer" value="/WEB-INF/tiles/footer.jsp"

 

이부분을 보시면 템플릿 파일은 WEB-INF/tiles/폴더 아래에 template.jsp 에,

left, header, footer 파일은 각각 WEB-INF/tiles/ 폴더 아래에

left.jsp, header.jsp, footer.jsp

에 설정해 두겠다고 명시해 두었습니다.

그러니 파일 구조를 보시면

 

 

위와 같은 파일 구조가 되도록 각각의 파일들을 생성해 주시면 됩니다.

 

그리고 template.jsp 에는 아래와 같이

코드는

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

<%@ page language="java" contentType="text/html; charset=EUC-KR"

    pageEncoding="EUC-KR"%>

<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles" %>

<!DOCTYPE html>

 

<html>

    <head>

        <meta charset="EUC-KR">

        <title>Insert title here</title>

        <style>

            #header{            

                width:100%;

                height:50px;

                text-align: center;

                line-height: 50px;

                background-color: #61868e;

            }

            #left{

                float:left;

                 width:15%;

                 text-align: center;

                background-color: #d78b7d;

            }

            #main{

                float:left;

                 width:85%;

                background-color: #f9f3e3;

            }

            #footer{

                width: 100%;

                height: 50px;            

                text-align: center;

                background-color: #cfc8b5;

                clear:both;

            }

             #left, #main{ 

                   min-height: 700px;

             

        </style>

    </head>

    <body>

        <div style="width:100%; height:100%;">

        <div id="header"><tiles:insertAttribute name="header" /></div>

        <div id="left"><tiles:insertAttribute name="left" /></div>

        <div id="main"><tiles:insertAttribute name="body" /></div>    

        <div id="footer"><tiles:insertAttribute name="footer" /></div>

        </div>

     

    </body>

</html>

Colored by Color Scripter

cs

 

그리고 header.jsp, left.jsp, footer.jsp 에는 각각 아래와 같이 만들어 주시면 됩니다.

 

아래의 코드의 div 안의 내용만 바꾸시면 될 것 같습니다.

1

2

3

4

<%@ page language="java" contentType="text/html; charset=EUC-KR"

    pageEncoding="EUC-KR"%>

<!DOCTYPE html>

<div>왼쪽 메뉴</div>

Colored by Color Scripter

cs

 

그럼 이제 tiles 를 사용하기 위한 기본적인 설정 파일들은 다 만들고 설정을 마친 것입니다.

물론 세세한 설정들은 손을 봐야겠지만 큰 틀을 잡고 가는데에는 문제가 없습니다.

그럼 이제 tiles를 테스트 해 보기 위해

mainController.java 에

아래와 같이 추가해줍니다.

코드는 

1

2

3

4

5

6

7

8

    /**

     * Tiles 사용

     */        

    @RequestMapping(value="/testTiles.do")

    public String testPage() {

        System.out.println("tiles Test!");

        return "main/tilesTest.page";

    }

Colored by Color Scripter

cs

위에 있구요

 

보통 타일즈를 사용할 때 상단메뉴 왼쪽 메뉴 아래쪽 메뉴를 고정시켜놓고 content 부분인 내용만 바꿔가며 사용하는 경우가 많습니다. 그 content 는 위의 return 에 명시한 대로

WEB-INF/jsp 폴더의 main폴더 아래에 tilesTest.jsp 를 만들고

아래와 같이 코드를 작성해줍니다.

1

2

3

4

5

6

7

8

9

10

11

12

<%@ page language="java" contentType="text/html; charset=EUC-KR"

    pageEncoding="EUC-KR"%>

<!DOCTYPE html>

<html>

<head>

<meta charset="EUC-KR">

<title>Insert title here</title>

</head>

<body>

타일즈 테스트

</body>

</html>

Colored by Color Scripter

cs

그리고 나서 서버를 실행시킨 뒤

http://localhost:8080//testTiles.do 에 접속해 보시면

 

위와 같이 각각의 tiles 들이 정해놓은 위치에 생성되어 있는 것을 보실 수 있습니다.

 

여기까지가 tiles 기본 설정 방법이었습니다.

 

반응형
반응형
1
2
3
4
5
6
7
8
9
10
fnDrawCallback: function () { 
    $('#tableId tbody tr').click(function () {  
        // get position of the selected row  
        var position = $('#tableId').dataTable().fnGetPosition(this)  
        // value of the first column (can be hidden)  
        var id = $('#tableId').dataTable().fnGetData(position).id
        // redirect
        document.location.href = 'abcd.html?id=' + id
    })
}
cs

 

반응형
반응형

svn 을 이용하여 작업을 하던 도중

update 가 되지않고 아래와 같은 에러메세지가 출력됬던 적이 있습니다.

 

 

이분의 블로그의 도움을 받아 문제를 해결했습니다.

https://benfatto.tistory.com/33

 

SVN | E155004 - SVN locked 에러 해결

잊을만 하면 찾아오는 SVN 대표적인 에러 LOCK. 간만에 쏟아지는 파일들 업데이트를 받다가 꼬여버렸다. 위와 같은 경우는 폴더 자체가 lock이 걸린 모양이다. Some resources were not updated. svn: E155004: Wo.

benfatto.tistory.com

해결 방법은

 

자신의 프로젝트 폴더에 아래의 .svn 이라는 폴더가 있는데

해당 폴더를 들어가보면

 

위와 같이 wc.db 라는 파일이 있다.

이 파일을 수정해야하는데 수정하기 위해서

SQL lite(https://sqlitebrowser.org/) 라는 프로그램을 설치해야 하는데

설치 방법은 위의 링크 홈페이지 접속 후 Download 탭에서

 

 

2020 아래의 Version 3.12.0 released (2020년 07월 23일 기준)

이라고 써 있는 부분을 클릭한 후

 

 

자신의 버전에 맞는 설치 파일을 다운받으시면 됩니다.

다운받은 zip 압축 파일을 풀면

많은 파일 목록이 나오는데 그중

 

DB Browser for SQLite 라는 파일을 실행시키시고

파일 > 데이터베이스 열기에서

해당 프로젝트의 .svn 폴더에 wc.db 라는 파일을 불러온 후

 

SQL 실행 탭에서

 

DELETE FROM WC_LOCK 

이라는 명령어를 입력하고

재생버튼처럼 생긴 Execute 버튼을 누르거나

혹은 키보드 F5 버튼을 누른 후

 

변경사항 저장하기를 눌러 저장해주시면

잠겨있던 svn 이 lock 이 풀리고 다시 정상적으로 작동합니다.

반응형
반응형

1. https://www.postgresql.org/

 

PostgreSQL: The world's most advanced open source database

PostgreSQL is a powerful, open source object-relational database system with over 30 years of active development that has earned it a strong reputation for reliability, feature robustness, and performance. There is a wealth of information to be found descr

www.postgresql.org

postgresql  공식홈페이지에 접속해서 다운로드 페이지에 들어갑니다

 

 

2. 여러가지 운영체제중 Windows 를 선택합니다

 

 

3. Download the Installer 라고 써있는 부분을 클릭합니다.

 

 

4. 자신의 운영체제 bit 와 설치할 postgresql 의 버전을 선택합니다.

저는 윈도우 64bit 에 postgresql 12 버전을 설치하겠습니다.

 

 

 

5. 다운받아진 설치파일을 실행합니다.

 

 

원하는 경로를 설정해줍니다.

이때 새 폴더가 생성되는게 아니라

선택한 폴더 아래에 바로 설치되므로

새 폴더를 생성해주고 적당한 이름을 지정해준 후

해당 폴더를 선택하여 설치해주는것이 좋습니다.

 

 

어떤 분들은 pgadmin 과 Stack Builder 를 제외하고 설치하시는 분들도 계시던데

저는 그냥 다 설치하겠습니다.

pgadmin 은 sql 툴이라고 생각하시면 됩니다.

 

 

postgres 의 데이터가 저장 될 폴더를 지정합니다.

보통 자동으로 data 폴더가 생성이 되어 그냥 Next> 버튼을 누르면 됩니다.

(중간에 경로가 다른것은 시행착오를 겪었기 때문이니 무시하셔도 괜찮습니다 :)

 

관리자 비밀번호를 지정해줍니다.

 

 

포트도 기본포트인 5432로 놔두고 Next> 를 눌러줍니다.

자랑스러운 Korean, Korea 를 선택해줍니다.

South, North 의 구분이 없는걸 보니 통일을 염원했나보네요

 

Next > 를 눌러줍니다.

 

 

 

Next > 를 또 눌러줍니다.

 

 

설치가 잘 진행되고 있습니다.

 

 

 Stack Builder 는 PostGIS 등의 확장 프로그램을 설치할 때 필요한 툴입니다.

우선은 특별히 설치할 프로그램이 없으니 체크를 해제하고 Finish를 눌러 설치를 완료합니다.

 

 

 

윈도우 검색창에 pgadmin 4 라고 검색하시면 sql 툴이 검색되는데 실행시킵니다.

위에서 설정해준 비밀번호를 입력하고 OK 버튼을 누르시면

 

 

위와같은 화면이 나오는데 그러면 설치가 잘 완료된 것입니다.

반응형

+ Recent posts