일반클래스에서 DB접근
- 작성자 :
- 오*원
- 작성일 :
- 2011-10-06 15:48:08
- 조회수 :
- 1,787
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
jsp 에서
<%@ page import="egovframework.com.sec.ram.security.userdetails.util.EgovUserDetailsHelper" %>
<%
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
%>
위와 같이 사용을 하다가 특별한 기능이 필요 하여
<%@ page import="egovframework.com.sec.ram.security.userdetails.util.EgovUserDetailsHelper" %>
<%@ page import="egovframework.fta.common.*" %>
<%
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
CommonUtil cUtil = new CommonUtil();
String BtnAuth = cUtil.getMenuAuth(cocd, id, curCodeMenu); <-- 디비에 접근 하고자 하는 일반 클래스
%>
<!-- 클래스 -->
public class CommonUtil{
/** MenuDAO */
@Resource(name="menuDAO")
private MenuDAO menuDAO;
/**
* 인증된 사용자객체를 VO형식으로 가져온다.
* @return Object - 사용자 ValueObject
*/
public String getMenuAuth(String coCd, String id, String menuId) {
//commonUtilVO vo = new commonUtilVO();
//vo.setCoCd(coCd);
//vo.setId(id);
//vo.setCurCodeMenu(menuId);
MenuVO vo = new MenuVO();
vo.setAuthCodeMenu("ROLE_ADMIN");
vo.setCurCodeMenu("2010000");
MenuVO resultVO = null;
try {
System.out.println("---------------------11111111111111--------------------");
resultVO = (MenuVO) menuDAO.selectMenuAuth(vo);
System.out.println("---------------------222222222222222--------------------");
} catch (Exception e){
System.out.println("---------------------333333333333333--------------------");
System.out.println(e.getMessage());
System.out.println("---------------------444444444444444--------------------");
}
return vo.getAuthCodeMenu();
}
}
11111111111111 이 찍히고
33333333333333 이 찍히고
null
44444444444444 이 찍힙니다.
Resource로 선언한 MenuDAO에 접근을 못하는 것 같습니다.
어떻게 해야 할까요??
Controller을 통하여 접근하면 접근 가능 합니다.
<%@ page import="egovframework.com.sec.ram.security.userdetails.util.EgovUserDetailsHelper" %>
<%
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
%>
위와 같이 사용을 하다가 특별한 기능이 필요 하여
<%@ page import="egovframework.com.sec.ram.security.userdetails.util.EgovUserDetailsHelper" %>
<%@ page import="egovframework.fta.common.*" %>
<%
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
CommonUtil cUtil = new CommonUtil();
String BtnAuth = cUtil.getMenuAuth(cocd, id, curCodeMenu); <-- 디비에 접근 하고자 하는 일반 클래스
%>
<!-- 클래스 -->
public class CommonUtil{
/** MenuDAO */
@Resource(name="menuDAO")
private MenuDAO menuDAO;
/**
* 인증된 사용자객체를 VO형식으로 가져온다.
* @return Object - 사용자 ValueObject
*/
public String getMenuAuth(String coCd, String id, String menuId) {
//commonUtilVO vo = new commonUtilVO();
//vo.setCoCd(coCd);
//vo.setId(id);
//vo.setCurCodeMenu(menuId);
MenuVO vo = new MenuVO();
vo.setAuthCodeMenu("ROLE_ADMIN");
vo.setCurCodeMenu("2010000");
MenuVO resultVO = null;
try {
System.out.println("---------------------11111111111111--------------------");
resultVO = (MenuVO) menuDAO.selectMenuAuth(vo);
System.out.println("---------------------222222222222222--------------------");
} catch (Exception e){
System.out.println("---------------------333333333333333--------------------");
System.out.println(e.getMessage());
System.out.println("---------------------444444444444444--------------------");
}
return vo.getAuthCodeMenu();
}
}
11111111111111 이 찍히고
33333333333333 이 찍히고
null
44444444444444 이 찍힙니다.
Resource로 선언한 MenuDAO에 접근을 못하는 것 같습니다.
어떻게 해야 할까요??
Controller을 통하여 접근하면 접근 가능 합니다.
A
안녕하세요.. 오석원님..
이 경우는 @Resource에 의해 MenuDAO가 injection 되지 않습니다.
즉, 클래스가 new를 통해 생성된 경우는 Spring의 bean으로서 동작하지 않습니다.
이 경우는 @Controller를 통해 호출되거나 다른 @Service에 의해 호출되어야 할 것 같습니다.
추가로.. JSP에서 직접 클래스를 참조하는 것은 MVC 패턴에 맞지 않습니다..
그럼.. 즐거운 하루되십시오.
감사합니다.
이 경우는 @Resource에 의해 MenuDAO가 injection 되지 않습니다.
즉, 클래스가 new를 통해 생성된 경우는 Spring의 bean으로서 동작하지 않습니다.
이 경우는 @Controller를 통해 호출되거나 다른 @Service에 의해 호출되어야 할 것 같습니다.
추가로.. JSP에서 직접 클래스를 참조하는 것은 MVC 패턴에 맞지 않습니다..
그럼.. 즐거운 하루되십시오.
감사합니다.