버전에 맞는 개발환경을 맞춰야 한다.

1. JDK

2. Maven + setting.xml

3. Tomcat

전자정부 표준 프레임워크 개발 시작하기 링크

 

egovframework:dev:gettingstarted [eGovFrame]

 

www.egovframe.go.kr

항목 설명 비고
OS Windows seven, vista 이상  
JDK Java SE SDK 7.0 이상 JDK 8은 개발환경 3.5.1 부터 적용가능
IDE Eclipse 4.3(Kepler) / 4.4(Luna) 구현도구에 포함 (개발환경 3.5 - Kepler / 개발환경 3.5.1 - Luna)
  • (2.7 이상) JavaEE(J2EE) 5 혹은 JDK1.5 이상의 환경 (단, 개발환경 2.7 이상에서는 JDK 1.6 이상 필요)

  • (3.0 이상) JavaEE(J2EE) 6 혹은 JDK1.6 이상의 환경

  • (3.5 이상) JavaEE(J2EE) 7 혹은 JDK1.7 이상의 환경 (단, 개발환경 3.5.1 부터 JDK8 적용 가능)

게시판 샘플을 이용하여 mysql 연결 후 동작을 해보니 검색이 안되었다..

selectbox의 value 값이랑 검색어도 잘 넘어가는데 어디서 문제인지 하나씩 확인 해 보았다.

sql 로그를 확인해보니.. 검색 후 전체 갯수가 변함이 없었다!

이분의 블로그를 참고하여 로그를 확인 해 보았습니다.

 

전자정부프레임워크 sql 쿼리 로그 찍기

전자정부표준프레임워크를 설치하고 템플릿 프로젝트를 임포트했다면 기본적으로 ibatis설정으로 되었을 것이다. 그리고 로그는 log4j에 의해서 로그가 남는다. log4j2.xml 파일을 찾아 suyou.tistory.com

도대체 어디가 문제 일지 답답하던중... 그럼 쿼리 문제는 아닐까라는 생각이 스쳐 지나갔다.

역시.. sql 쿼리 문법이 잘못 되었다...

휴 .. 독학은 너무 힘들다.

Oracle, MS-SQL, MYSQL 문법이 조금씩 차이가 있단다.. 물론 ibatis랑 mybatis 또한 다르단다!

아래 블로그를 참고 하였다.

 

ibatis vs mybatis LIKE절 검색하기

지난주 주말내내는 몸이 좋지 않아서 포스팅은 전혀 하지 못하였음.. 이번 포스팅에는 쿼리문의 LIKE 절을 DBMS별로 비교 하려함. IBATIS / MYBATIS의 차이는 #XXX# / #{XXX} 의 차이뿐이고 솔직히 문법은 동일함..

roqkffhwk.tistory.com

ORACLE LIKE 절
- ibatis
WHERE(AND) column LIKE '%'||#search_value#||'%'
- mybatis
WHERE(AND) coumn LIKE '%'||#{search_value}||'%'

MS-SQL LIKE 절
- ibatis
WHERE(AND) column LIKE '%'+#search_value#+'%'
- mybatis
WHERE(AND) column LIKE '%'+#{search_value}+'%'

MySQL LIKE절
- ibatis
WHERE(AND) column LIKE CONCAT('%',#search_value#,'%')
- mybatis
WHERE(AND) column LIKE CONCAT('%',#{search_value},'%')

 

이렇게 또 해결!

 

 공부하면서 기록(?)용으로 메모하고 있습니다. 
 부족하더라도 참고로 봐주세요.

https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte:ptl:security:jakarta_commons_validator

 

egovframework:rte:ptl:security:jakarta_commons_validator [eGovFrame]

입력값 검증을 위한 Validation 기능은 Valang, Jakarta Commons, Spring 등에서 제공한다. 여기서는 Jakarta Commons Validator를 Spring Framework과 연동하여 사용하는 방법에 대해서 설명하고자 한다. Jakarta Commons Validator는 필수값, 각종 primitive type(int,long,float…), 최대-최소길이, 이메일, 신용카드번호등의 값 체크등을 할 수 있도록 Temp

www.egovframe.go.kr

sample 게시판 복사해서 추가하는도중 등록이랑 수정이 계속 안되서 하루종일 삽질한 결과..

혼자 독학으로 하려니 아무것도 아닌 오류에도 하루종일 걸린다...

1. validator.jsp 추가

2. JSP 설정(taglib,javascript) 추가

<script type="text/javascript">
	function save(form){	
		if(!validate[Employee](form)){
			return;
		}else{
			form.submit();
		}
	}
</script>
....
<form:form commandName="[employee]">

 

if(!validateEmployee(form)){

<form:form commandName="employee">

 

validateEmployee 꼭 이름을 맞추자!!

Sample 게시판을 가져와 새로운 게시판을 추가해 보았다.

에러를 하나씩 하나씩 찾아가며 하고 있는 중이다.

해결한 에러중 꼭 잊지 말아야 할 내용들 정리하려고 한다.

1. 검색 및 페이징 에러

"Neither BindingResult nor plain target object for bean name 'searchVo' available as request attribute"

해결

<form:form commandName="searchVO" id="listForm" name="listForm" method="post">
</form:form>

form 태그를 빼먹었다..

 

 공부하면서 기록(?)용으로 메모하고 있습니다. 
 부족하더라도 참고로 봐주세요.

1. 원하는 페이지(jsp)를 추가한다.

/WEB-INF/jsp/board/boardList.jsp

 

2. boardController.java 추가

@Controller
public class boardController {

	@RequestMapping(value = "/boardList.do")
	public String boardList(HttpServletRequest request,HttpServletResponse response, Model model) throws Exception {
		return "board/boardList";
	}

}

 

3. context-common.xml 내용 추가 및 수정

/[eGovFrame Web Package]/src/main/resources/egovframework/spring/context-common.xml

<context:component-scan base-package="egovframework">
    <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
</context:component-scan>
    
<!-- 추가 -->
<context:component-scan base-package="[package명]">
    <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
</context:component-scan>

파일 경로에 맞춰 bean 수정

<!--
    Controller에서 return 값을 받아 파일 경로 설정
    ex) return "egovframework/example/sample/egovSampleList";
        /WEB-INF/jsp/egovframework/example/sample/egovSampleList.jsp 
-->
<bean class="org.springframework.web.servlet.view.UrlBasedViewResolver" p:order="1"
    p:viewClass="org.springframework.web.servlet.view.JstlView"
    p:prefix="/WEB-INF/jsp/" p:suffix=".jsp"/>

 

4. dispatcher-servlet.xml 내용 추가

/[eGovFrame Web Package]/src/main/webapp/WEB-INF/config/egovframework/springmvc/dispatcher-servlet.xml

<context:component-scan base-package="egovframework">
    <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
</context:component-scan>

<!-- 추가 -->
<context:component-scan base-package="[package명]">
    <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
</context:component-scan>

 

5. 추가 한 page 확인

http://localhost:8080/boardList.do

 

 공부하면서 기록(?)용으로 메모하고 있습니다. 
 부족하더라도 참고로 봐주세요.

1. context-datasource.xml 수정

[eGovFame Web Project]/src/main/resources/egovframework/spring/context-datasource.xml

<!-- Mysql (POM에서 commons-dbcp, mysql-connector-java 관련 라이브러리 설정 ) --> 
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
    <property name="url" value="jdbc:mysql://[DB-Address]:[DB-Port]/[DB-Schema]" />
    <property name="username" value="[DB-ID]"/>
    <property name="password" value="[DB-PASSWORD]"/>
</bean>

 

2. pom.xml 수정

[eGovFame Web Project]/pom.xml

<!-- mysql이나 oracle DB 사용시 아래 설정 추가  -->
<dependency>
    <groupId>com.googlecode.log4jdbc</groupId>
    <artifactId>log4jdbc</artifactId>
    <version>1.2</version>
    <exclusions>
        <exclusion>
            <artifactId>slf4j-api</artifactId>
            <groupId>org.slf4j</groupId>
        </exclusion>
    </exclusions>
</dependency>
        
<dependency>
    <groupId>commons-dbcp</groupId>
    <artifactId>commons-dbcp</artifactId>
    <version>1.4</version>
</dependency>
        
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.31</version>
</dependency>

 

 공부하면서 기록(?)용으로 메모하고 있습니다. 
 부족하더라도 참고로 봐주세요.

+ Recent posts