아래 참조대로 진행하면서 확인할 사항 추가

참조 : https://www.bsidesoft.com/6160

 

[java] 인텔리제이 무료 버전으로 스프링5 MVC개발하기(Maven) - Bsidesoft co.

개요 돈 많은 회사의 직원 분들은 그저 회사에 인텔리제이 얼티밋을 사달라고 하면 해결될지 모르겠지만 우리 같은 서민은 그게 쉽지 않습니다. 다행히 무료버전인 community 에디션이 있죠! 사실

www.bsidesoft.com

 

포트 설정 > pom.xml

<httpConnector>
 <port>9080</port>
</httpConnector>

 

JSP 한글깨짐 > src/main/webapp/WEB-INF/web.xml

아래 추가

<jsp-config>
  <jsp-property-group>
    <url-pattern>*.jsp</url-pattern>
    <page-encoding>UTF-8</page-encoding>
  </jsp-property-group>
</jsp-config>

 

View 소스 위치 > src/main/webapp/WEB-INF/spring-servlet.xml

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/view/"/>
    <property name="suffix" value=".jsp"/>
</bean>

'Computer > IntelliJ IDE' 카테고리의 다른 글

IntelliJ IDE 설치 및 세팅  (0) 2021.08.05

Java 오라클 홈페이지

https://www.oracle.com/

IntelliJ IDE 홈페이지

https://www.jetbrains.com/ko-kr/idea/

 

IntelliJ IDEA: 우수성과 인체 공학이 담긴 JetBrains Java IDE

 

www.jetbrains.com

 

IntelliJ 한글화 및 편리성 플러그인

 Setting > Plugins

  - Korean Language Pack : 메뉴 한글화

  - Rainbow Brackets : 괄호 가독성

  - CodeGlance : 페이지 가독성

 

IntelliJ Community 버전 사용 시 웹프로젝트 사용을 위한 OpenJDK 설치

 - File > New Project 

   .Project SDK > JDK Download > Oracle OpenJDK

 

 

 

 

'Computer > IntelliJ IDE' 카테고리의 다른 글

SpringMCV 및 Jetty 세팅  (0) 2021.12.07

출처 : http://egloos.zum.com/nije/v/942268

forEach는 다음과 같은 속성을 가진다.

  • items : forEach가 순회할 Collection 개체를 지정한다.
  • begin : 반복문의 시작값을 설정한다.
  • end : 반복문의 종료값을 설정한다.
  • step : 반복문의 증가값을 설정한다.
  • var : 반복문의 순회시 해당하는 값을 담을 변수를 설정한다.
  • varStatus : 변수의 상태를 담을 변수를 설정한다.

기본적으로 forEach는 begin 과 end 속성만 설정해주면 동작하며 그 외 속성은 추가적인 옵션이다. 물론 이 두 부분만 설정됬을때는 세부적인 제어가 불가능 하고 step은 기본값으로 1이 작용한다.

 <c:forEach begin="1" end="9">
  <c:out value="foreach" /><br>
 </c:forEach>


다음과 같이 기본적인 소스 코드 실행시 결과는 아래와 같다.


△ 기본적인 begin과 end에 의해 몸체의 foreach만 9회 반복된 결과


begin 속성과 end 속성을 통해 시작값과 종료값을 지정하면 자바의 for문과 마찬가지로 증가값을 지정해 줄 수 있다.

 <c:forEach begin="1" end="9" step="2">
  <c:out value="foreach" /><br>
 </c:forEach>


소스코드에 위와 같이 step을 증가해준다.


△ step값을 지정하여 반복문의 몸체가 5회만 출력된 모습


위와 같이 step속성을 지정해주면 증가값을 설정할 수 있기 때문에 반복횟수는 5회로 나타난다. 그리고 step 속성은 0보다 작을 수
없으며 0보다 작은 즉, -값으로 설정하게 되면 javax.servlet.ServletException: 'step' <= 0 과 같은 Exception이 발생하게된다. 반복문에서 콜렉션의 사이즈에서 0이 될때까지 순회하는 방식의 사용은 불가능할듯 하다.

var속성은 반복문의 시작값 + 증가값을 변수에 담아둘 수 있는 속성이다. 위 소스에 var를 추가해보면

 <c:forEach begin="1" end="9" step="2" var="x">
  <c:out value="${ x } : foreach" /><br>
 </c:forEach>


△ 반복문의 시작값 + 증가값을 var 속성을 통해 변수에 담아 화면에 출력한 결과




varStatus 속성은 var 속성을 통해 변수에 담은 반복문의 값의 상태를 담고있는 변수를 지정한다. 예를 들자면 step은 얼마인지. begin은 몇부터 시작해서 end는 얼마인지 하는등을 변수에 담아둘 수 있다.

 <c:forEach begin="1" end="9" step="2" var="x" varStatus="status">
  <c:out value="${ x } : foreach : ${ status.first }" /><br>
 </c:forEach>


소스에서 사용한 first는 변수가 첫값인가를 부울값으로 반환하는 속성이다.


△ varStatus 속성을 사용하여 화면상에 출력한 모습




varStatus속성은 다음과 같은 멤버를 가진다.

[출처] http://blog.naver.com/csk7179/80112888854


수정화면을 개발시 읽을 수만 있고 변경을 못 하도록 할때 일반적으로

<input type="text" name="title" readonly> 처리를 한다.

그런데 체크박스/라디오버튼/Select는 readonly 프로퍼티가 먹지 않는다.

다른 방법은 disabled ( 예:<select name="jobtype" disabled> )

인데 이건 안타깝게도 처리화면으로 값을 넘기지 못한다.

 

해서 웹을 헤메이다 찾은 소스를 소개 합니다.

 

Select 에서 Readonly 와 같은 동작을 하게 하는 소스 입니다.

 

아래부분을 쫙 긁어다 붙여서 테스트 해보세요.^^

 

<소스 시작>

 

< select name='choice' id='choice' readonly style='background-color:#ababab'
onFocus='this.initialSelect = this.selectedIndex;'
onChange='this.selectedIndex = this.initialSelect;' >
<option value=''> </option>
<option value='Y' selected>Y</option>
<option value='N'>N</option>
</select>

EgovMenuList.js 에 추가한 내용이다. 


본부코드는 20000000 대 코드번호를 갖는다는 조건을 이용하였다

부서클릭시 본부코드와 본부명을 출력한다. 


/*

 * 부서 클릭 시 본부코드 출력

 * 

 * Auth : XXXXXX

 * 

 * param : 부서코드번호

 * 

 * return: 본부코드번호

 */


function getHdqrtrsCd(deptNo) {

var r = '';

if (deptNo < 30000000) {

r = deptNo

} else {

for (i = 0; i < treeNodes.length; i++) {

var nodeValues = treeNodes[i].split("|");

if (nodeValues[0] == deptNo) {

r = getHdqrtrsCd(nodeValues[1]);

}

}

}

return r;

}


/*

 * 부서 클릭 시 본부이름 출력

 * 

 * Auth : XXXXXX

 * 

 * param : 부서코드번호

 * 

 * return: 본부이름

 */

function getHdqrtrsNM(deptNo) {

var r = '';

if (deptNo < 30000000) {

for (i = 0; i < treeNodes.length; i++) {

var nodeValues = treeNodes[i].split("|");

if (nodeValues[0] == deptNo) {

r = nodeValues[2];

}

}

} else {

for (i = 0; i < treeNodes.length; i++) {

var nodeValues = treeNodes[i].split("|");

if (nodeValues[0] == deptNo) {

r = getHdqrtrsNM(nodeValues[1]);

}

}

}

return r;

}



배치파일 생성 후 윈도우 At명령어느 스케줄러마법사를 이용해 실행 빈도를 설정한다.

http://kmckmc.tistory.com/entry/window-At-%EB%AA%85%EB%A0%B9%EC%96%B4


배치파일

::인터넷연결

@echo off

echo Network Connect

net use \\아이피주소


::연도별 YYYY-MM 디렉토리 생성

echo Create Directory

md d:\XXXX\%date:~0,7%

md \\아이피주소\XXXX\%date:~0,7%


::mysqldump를 이용한 백업 

echo Running dump...

"c:\Program Files\MySQL\MySQL Server 5.5\bin\"mysqldump -u 계정명 -p비밀번호 --result-file="d:\XXXX\%date:~0,7%\backup_%date%.sql" 스키마이름


::파일시스템에 백업 z:\는 아이피주소에 할당된 드라이브 이름

echo Copy to File System

copy d:\XXXX\%date:~0,7%\backup_%date%.sql z:\XXXX\%date:~0,7%\backup_%date%.sql

echo Done!



'Computer > DB' 카테고리의 다른 글

MySQL 첫번째 또는 마지막 행 출력 예제  (0) 2016.02.18
오라클 계정 생성 및 삭제  (0) 2015.05.07
MySQL 데이터베이스 생성 및 접근권한  (0) 2015.01.21
MySQL 실행 및 관리자 접속  (0) 2015.01.21
SQL cursor  (0) 2014.09.01

http://www.ischo.net/4191

+++++++++++++++++++++++++++++++++++++++++++++++++++++++ 

 

작업스케줄러에 등록하기 - at 명령어 사용법

 

Windows 2000 시리즈 부터 사용되어왔던 at 명령어로써 작업스케줄러에 작업을 등록할 수 있다.

 

이후에 개선된 명령어로는 schtasks 도 있다.

 

at 으로 예약된작업에 작업을 걸거나 확인할 수 있다. 

 

사용법 ( at /? )

AT 명령은 프로그램과 명령이 지정된 시간과 날짜에
실행되도록 일정을 만듭니다. AT 명령을 사용하려면 일정
서비스를 실행하고 있어야 합니다.

AT [\\컴퓨터이름] [ [id] [/DELETE] | /DELETE [/YES]]
AT [\\컴퓨터이름] 시간 [/INTERACTIVE]
    [ /EVERY:날짜[,...] | /NEXT:날짜[,...]] "명령"

\\컴퓨터이름       원격 시스템을 지정합니다. 이 매개 변수를 생략하면,
                   로컬 컴퓨터에 대한 일정이 됩니다.
id                 예약된 명령에 지정된 식별 번호입니다.
/delete            예약된 명령을 취소합니다. id를 생략하면,
                   해당 컴퓨터에 예약되어 있는 모든 명령이 취소됩니다.
/yes               예약된 모든 작업을 취소할 때, 더 이상 확인하지 않을 경우
                   yes로 지정합니다.
시간               명령을 실행할 시간입니다.
/interactive       작업이 실행될 때 로그온한 사용자의 데스크톱과
                   대화할 수 있도록 합니다.
/every:날짜[,...]  매주 또는 매달 지정된 날짜에 명령을 실행합니다.
                   날짜를 생략하면, 현재 날짜로 가정합니다.
/next:날짜[,...]   돌아오는 지정 요일에(예들 들어, 다음 목요일),
                   지정된 명령을 실행합니다.
                   날짜를 생략하면, 현재 날짜로 가정합니다.
"명령"             실행될 Windows NT 명령이나 일괄 프로그램입니다.

 

 

\\컴퓨터이름

이 매개 변수를 사용하여 원격 컴퓨터를 지정한다. 이 매개 변수를 생략하면 작업이 로컬 컴퓨터에서 실행되도록 예약된다. 

time
이 매개 변수를 사용하여 작업이 실행되는 시간을 지정한다. 시간은 24시간을 기준으로 하여 hours: minutes로 지정된다. 예를 들어, 0:00은 자정을 나타내며 20:30은 오후 8시 30분을 나타낸다. 

/interactive
이 매개 변수를 사용하여 작업이 실행되고 있을 때 로그온되어 있는 사용자의 데스크톱과 해당 작업을 상호 작용할 수 있게 한다. 

/every: date ,... 
이 매개 변수를 사용하여 매주 금요일이나 매월 8일처럼 지정된 요일이나 날짜에 작업을 실행하도록 예약한다. 하나 이상의 요일(다음 약자 사용: M,T,W,Th,F,S,Su)이나 하나 이상의 날짜(숫자 1 - 31 사용)로 date를 지정한다. 쉼표를 사용하여 여러 날짜 항목을 구분해야 한다. 이 매개 변수를 생략하면 현재 날짜에 작업이 실행되도록 예약된다.

/next: date , ...
이 매개 변수를 사용하여 작업이 다음 요일(예: 다음 월요일)이나 날짜에 실행되도록 예약한다. 하나 이상의 요일(다음 약자 사용: M,T,W,Th,F,S,Su)이나 하나 이상의 날짜(숫자 1 - 31 사용)로 date를 지정한다. 쉼표를 사용하여 여러 날짜 항목을 구분해야 한다. 이 매개 변수를 생략하면 현재 날짜에 작업이 실행되도록 예약된다. 

command
이 매개 변수를 사용하여 실행할 Windows 2000 명령, 프로그램(.exe 또는 .com 파일) 또는 일괄 프로그램(.bat 또는 .cmd 파일)을 지정한다. 이 명령을 인수로 실행해야 하는 경우 절대 경로 이름(드라이브 문자로 시작하는 전체 경로)을 사용한다. 이 명령이 원격 컴퓨터에 있으면 범용 명명 규칙(UNC) 경로 이름(\\ ServerName \ ShareName)을 사용한다. 명령이 실행(.exe) 파일이 아니면 cmd /c copy C:\*.* C:\temp처럼 명령 앞에 cmd /c를 붙여야 한다. 

id
이 매개 변수를 사용하여 예약된 작업에 할당되는 식별 번호를 지정한다. 

/delete
이 매개 변수를 사용하여 예약된 작업을 취소한다. id 매개 변수를 생략하면 컴퓨터에서 예약된 모든 작업이 취소된다. 

/yes
이 매개 변수를 사용하여 예약된 작업을 취소할 때 시스템의 모든 쿼리에 예로 응답한다. 이 매개 변수를 생략하면 작업을 취소할지 묻는 메시지가 나타난다. 

 

1. 예약된 작업 작성 방법

시작을 누르고 프로그램, 보조프로그램을 차례로 가리킨 다음 명령 프롬프트를 누른다. 
명령 프롬프트에서 다음 명령줄을 입력한 다음 Enter 키를 눌러 현재 실행 중인 서비스 목록을 나타낸다. 

활용 예제

 

at 00:00 cmd /c copy C:\dir1\*.* C:\dir2                         // 돌아오는 00:00에 "copy C:\dir1\*.* C:\dir2" 명령어를 실행

 

at \\products 23:00 /every:M,T,W,Thu,F backup           // 매일 월,화,수,목,금  23:00에 products컴퓨터에서  backup 명령어 실행

 

 

2. 예약된 작업 확인 방법

> at \\컴퓨터이름 id번호        // 컴퓨터이름과 id번호를 생략하면 로컬컴퓨터의 전체목록이 나온다.

 

 

3. 예약된 작업 삭제 방법

> at \\컴퓨터이름 id번호  /delete

예)  > at 1 /delete

<result property="empAnslry" column="EMP_ANSLRY" nullValue="0"/>

<result property="empMntslr" column="EMP_MNTSLR" nullValue="0"/>

오라클의 Rownum = 1개념

limit 1 Order By A


SELECT

R.RESULT_SEQ

 , R.EMP_NO

 , R.DEPT_NO

 , R.PJT_CD

 , R.PJT_TYPE

 , P.PJT_NM

 , R.PJT_PART

     , (SELECT DATE_FORMAT(START_DT, '%Y-%m-%d')  

FROM

RH_RESULT

WHERE

EMP_NO = 2015103

AND PJT_CD = R.PJT_CD

AND USE_YN = 'Y'

AND PJT_TYPE <> '휴일/휴가' 

     ORDER BY START_DT

                limit 1) AS START_DT

              , (SELECT DATE_FORMAT(END_DT, '%Y-%m-%d')  

FROM

RH_RESULT

WHERE

EMP_NO = 2015103

AND PJT_CD = R.PJT_CD

AND USE_YN = 'Y'

AND PJT_TYPE <> '휴일/휴가' 

     ORDER BY START_DT DESC

                limit 1

              ) AS END_DT  

 , R.RATE_CD

 , R.CREATE_USER

 , R.CREATE_DATE

 , R.CREATE_IP

 , R.UPDATE_USER

 , R.UPDATE_DATE

 , R.UPDATE_IP  

 , R.MEMO_INFO

 , R.USE_YN

FROM

RH_RESULT R,

RH_PROJECT P

WHERE

R.EMP_NO = 2015103

AND R.PJT_CD = P.PJT_CD

AND R.USE_YN = 'Y'

AND P.USE_YN = 'Y'

AND R.PJT_TYPE <> '휴일/휴가' 

Group BY R.PJT_CD

ORDER BY R.START_DT



'Computer > DB' 카테고리의 다른 글

MySql 윈도우 자동 백업 및 파일시스템 복사  (0) 2016.03.03
오라클 계정 생성 및 삭제  (0) 2015.05.07
MySQL 데이터베이스 생성 및 접근권한  (0) 2015.01.21
MySQL 실행 및 관리자 접속  (0) 2015.01.21
SQL cursor  (0) 2014.09.01

<script type="text/javascript">

$(document).ready(

function() {

var latlng = 중심좌표;

var myOptions = {

zoom : 17,

center : latlng,

mapTypeId : google.maps.MapTypeId.ROADMAP

}

var map = new google.maps.Map(document

.getElementById("map"), myOptions);


var latlngRoute = 좌표좌표좌표;

var marker = new google.maps.Marker({

position : latlngRoute,

map : map,

title : '표시내용'

});

var flightPlanCoordinates = [

이동경로1, 이동경로2 ....

                           ];

   var flightPath = new google.maps.Polyline({

                  path: flightPlanCoordinates,

                  geodesic: true,

                  strokeColor: '#FF0000',

                  strokeOpacity: 1.0,

                  strokeWeight: 2

                  });

   

flightPath.setMap(map);

});



</script>



<div id="map" style="width: 460px; height: 380px;"></div>



+ Recent posts