공통컴포넌트처럼 JSP에서 JAVA파일 Import 해서 쓰고싶어서 질문 드립니다
- 작성자 :
- 서*옥
- 작성일 :
- 2012-08-30 22:22:49
- 조회수 :
- 2,002
- 구분 :
- 공통컴포넌트
- 진행상태 :
- 완료
Q
안녕하세요. 궂은 날씨에 노고가 많으십니다.
공통컴포넌트의
<%@ page import="egovframework.com.utl.fcc.service.EgovDateUtil" %>
위의 날짜관련 유틸처럼 JSP 파일에 JAVA파일을 import해서 쓰고싶은데
제가 쓰고자 하는 기능은 데이터 베이스에서 해당 ID 갯수가 몇개인지 조회하여
int를 리턴해주는 기능입니다.
데이터베이스에 접근하여야 하기때문에 tmpUtils.java utilService.java, utilServcieImpl, utilDAO.java
이렇게 파일을 생성하였고 코딩은 아래와 같이 하였습니다.
1. tmpUtils.java
package egovframework.com.tmp;
import egovframework.com.tmp.servcie.UtilService;
public class tmpUtils{
static UtilService utilServcie;
public static int checkId(String id){
return utilServcie.idCount(id);
}
}
2. uitlService.java
package egovframework.com.tmp.servcie;
public interface UtilService{
int idCount(String id);
}
3. utilServiceImpl.java
package egovframework.com.tmp.servcie.impl;
import org.springframework.stereotype.Service;
import egovframework.com.tmp.servcie.UtilService;
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
@Service("utilServcie")
public class UtilServiceImpl extends AbstractServiceImpl implements UtilService{
static UtilDAO utilDAO;
public int idCount(String id){
int idCnt = utilDAO.idCount(id);
return idCnt;
}
}
4. utilDAO.java
package egovframework.com.tmp.servcie.impl;
import org.springframework.stereotype.Repository;
import egovframework.com.cmm.service.impl.EgovComAbstractDAO;
public class UtilDAO extends EgovComAbstractDAO{
@Repository("utilDAO")
public int idCount(String id){
return (Integer)selectByPk("utilDAO.idCount", id);
}
}
5. jsp에서 호출
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ page import="egovframework.com.utl.fcc.service.EgovDateUtil" %>
<%@ page import="egovframework.com.tmp.tmpUtils" %>
<%
String toDate = EgovDateUtil.convertDate(EgovDateUtil.getToday(), "0000", "yyyy-MM-dd");
int idChk = tmpUtils.checkId("test1");
%>
에러로그를 보아서는 tmpUtil.java에서 gmtUtilServcie.idCount(id); 이렇게 서비스에 접근하는 부분에서 나는것 같습니다..
에러로그파일은 첨부파일로 드립니다.
감사합니다.
공통컴포넌트의
<%@ page import="egovframework.com.utl.fcc.service.EgovDateUtil" %>
위의 날짜관련 유틸처럼 JSP 파일에 JAVA파일을 import해서 쓰고싶은데
제가 쓰고자 하는 기능은 데이터 베이스에서 해당 ID 갯수가 몇개인지 조회하여
int를 리턴해주는 기능입니다.
데이터베이스에 접근하여야 하기때문에 tmpUtils.java utilService.java, utilServcieImpl, utilDAO.java
이렇게 파일을 생성하였고 코딩은 아래와 같이 하였습니다.
1. tmpUtils.java
package egovframework.com.tmp;
import egovframework.com.tmp.servcie.UtilService;
public class tmpUtils{
static UtilService utilServcie;
public static int checkId(String id){
return utilServcie.idCount(id);
}
}
2. uitlService.java
package egovframework.com.tmp.servcie;
public interface UtilService{
int idCount(String id);
}
3. utilServiceImpl.java
package egovframework.com.tmp.servcie.impl;
import org.springframework.stereotype.Service;
import egovframework.com.tmp.servcie.UtilService;
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
@Service("utilServcie")
public class UtilServiceImpl extends AbstractServiceImpl implements UtilService{
static UtilDAO utilDAO;
public int idCount(String id){
int idCnt = utilDAO.idCount(id);
return idCnt;
}
}
4. utilDAO.java
package egovframework.com.tmp.servcie.impl;
import org.springframework.stereotype.Repository;
import egovframework.com.cmm.service.impl.EgovComAbstractDAO;
public class UtilDAO extends EgovComAbstractDAO{
@Repository("utilDAO")
public int idCount(String id){
return (Integer)selectByPk("utilDAO.idCount", id);
}
}
5. jsp에서 호출
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ page import="egovframework.com.utl.fcc.service.EgovDateUtil" %>
<%@ page import="egovframework.com.tmp.tmpUtils" %>
<%
String toDate = EgovDateUtil.convertDate(EgovDateUtil.getToday(), "0000", "yyyy-MM-dd");
int idChk = tmpUtils.checkId("test1");
%>
에러로그를 보아서는 tmpUtil.java에서 gmtUtilServcie.idCount(id); 이렇게 서비스에 접근하는 부분에서 나는것 같습니다..
에러로그파일은 첨부파일로 드립니다.
감사합니다.
A
안녕하세요.. 서연옥님..
다른 bean(@Service)를 injection 방식으로 호출하는 것은.. ApplicationContext의 getBean()을 통해서 호출되어야 처리됩니다. (Spring container에 의해 관리되어야 Injection 등의 기능을 사용할 수 있음)
즉, 이 경우는 TmpUtils 자체가 new 든.. static 방식으로 호출을 하면.. Spring container에 의해 관리되는 bean이 아니기 때문에.. 내붕에 지정된 UtilService가 null이 되는 것입니다..
이 경우는 DB 참조가 필요하시면.. Controller에서 처리하신 후에.. 모델에 담아서.. JSP에서 활용하셔야 합니다.
그럼.. 즐거운 하루되십시오.
감사합니다.
다른 bean(@Service)를 injection 방식으로 호출하는 것은.. ApplicationContext의 getBean()을 통해서 호출되어야 처리됩니다. (Spring container에 의해 관리되어야 Injection 등의 기능을 사용할 수 있음)
즉, 이 경우는 TmpUtils 자체가 new 든.. static 방식으로 호출을 하면.. Spring container에 의해 관리되는 bean이 아니기 때문에.. 내붕에 지정된 UtilService가 null이 되는 것입니다..
이 경우는 DB 참조가 필요하시면.. Controller에서 처리하신 후에.. 모델에 담아서.. JSP에서 활용하셔야 합니다.
그럼.. 즐거운 하루되십시오.
감사합니다.