[Jasper] 4. Jasper Java 예제

2021. 11. 12. 18:40· BE/Java
목차
  1. 1) Empty Datasource 이용(위의 소스와 동일)
  2. 2) Map List 이용
  3. 3) Dto List 이용
  4. 4) XML 이용
반응형

1. Jasper 호출

 

@RequestMapping("jasperSample")
public ModelAndView jasperSample(HttpServletRequest request) throws Exception
{
    ModelAndView mav = null;
    try
    {
        JRDataSource datasource = new JREmptyDataSource(1);     // 빈 데이터 선언
            
        mav = new ModelAndView();
        mav.setViewName("jasper/app/InquiryApproval");          // jasper 파일 위치 지정
        mav.addObject("format","pdf");                          // format PDF로 설정
        mav.addObject("param_1","value");                    // jasper 보고서 파일에 넘겨줄 파라미터1 추가
        
        // jasper 보고서 파일에 넘겨줄 datasource 지정 (datasource 안 넘겨줘도 실행되지만, 보고서가 아무것도 보이지 않을 수 있다.)
        mav.addObject("dataSource", datasource);                
    } 
    catch (Exception e)
    {
        logger.error("\n exception jasperSample =================> \n\n" + e.getCause()); 
    }
return mav;
}

2. Jasper Datasource 설정

 

주의

Jasper 보고서의 필드 명과 JAVA에서 넘겨주는 변수 명은 대소문자를 구분하니 유의

 

Jasper DataSource는 아래 예제 뿐만 아니라 Java의 Array Object, xlsx(엑셀), csv 형식도 지원한다.

 

1) Empty Datasource 이용(위의 소스와 동일)

JRDataSource datasource = new JREmptyDataSource(1);     // 빈 데이터 선언

2) Map List 이용

/** MAP을 이용한 DataSource 선언(시작) **/
List<Map<String,?>> mapList = new ArrayList<Map<String,?>>();
for(int i=0;i<2;i++){
    Map<String,Object> map = new HashMap<String,Object>();
    map.put("num", i+"번");
    mapList.add(map);
}
           
JRDataSource datasource = new JRMapCollectionDataSource(mapList);
/** MAP을 이용한 DataSource 선언(끝) **/

 

3) Dto List 이용

/** Dto를 이용한 DataSource 선언(시작) **/
List<AppDto> dtoList = new ArrayList<AppDto>();
for(int i=0;i<2;i++){
    AppDto dto = new AppDto();
    dto.setNum(i+"번");
    dtoList.add(dto);
}
            
JRDataSource datasource = new JRBeanCollectionDataSource(dtoList);      // Dto List를 JRDataSource에 넣어줌
/** Dto를 이용한 DataSource 선언(끝) **/

 

4) XML 이용

xml을 이용하는 경우 Jasper Studio에서 사전 작업이 필요하다.

 

Jasper Studio에서 설정

 

4-1. DataAdapter를 생성하기 위해 Jasper Studio의 Repository Explorer 에서 표시된 버튼을 클릭한다.

 

 

4-2. XML Document 선택 후 Next

 

 

4-3. Name과 XML 파일 불러온다.

        'Use the report Xpath Expression when filling the report'로 설정 후 Finish 클릭

 

 

4-4. 아래 이미지처럼 Project Explorer에서 프로젝트 선택 후 Dataset and Query 클릭

 

4-5.

 ① 위에서 생성한 dataAdapter 선택

 ② Language : xPath 선택

 ③ 기준 점을 설정하는 곳이다. XML 안에 동일한 하위노드가 있는 경우 여러 데이터로 각각 나와야 하는 곳을 기입하면 된다. 

 ④ Field 정의하고 수정, 삭제 가능하다.

 ⑤ Data preview를 이용해 데이터 미리보기가 가능하다.

 

 

4-6. Outline의 Fields 에서 방금 추가한 필드를 보고서로 드래그하여 추가 및 저장한다.

       이후 컴파일하여 jasper파일을 프로젝트에 추가한다.

 


 

PROJECT의 JAVA 소스

 

4-7. XML 데이터 방식은 다른 방식들과는 다르게 설정한다.

       String 형식으로 되어있는 XML String 문자열을 Document 형식으로 변환 후, "XML_DATA_DOCUMENT" 에 직접 넣어준다.

 

String xml = "<TEST>hi</TEST>";
Document xmlDoc = convertStringToDocument(xml);

mav.addObject("XML_DATA_DOCUMENT", xmlDoc);        // XML 데이터 연결

 

convertStringToDocument

private static Document convertStringToDocument(String xmlStr) {

    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder;

    try {
        builder = factory.newDocumentBuilder();
        Document doc = builder.parse(new InputSource(new StringReader(xmlStr)));
         
        return doc;
    } catch (Exception e) {
        e.printStackTrace();
    }

    return null;

}

 

 

Jasper 관련하여 도움 많이 받은 주소 : https://m.blog.naver.com/junsu60/220475614721

반응형

'BE > Java' 카테고리의 다른 글

[Jasper] 5. JasperStudio 기능 설명 - 2  (0) 2021.11.14
[Jasper] 5. JasperStudio 기능 설명 - 1  (0) 2021.11.13
[Jasper] 3. Jasper Studio 한글 설정  (0) 2021.11.11
[Jasper] 2. Jasper Studio로 프로젝트 생성 방법  (0) 2021.11.10
[Jasper] 1. Jasper 설치 및 servlet 설정  (0) 2021.11.09
  1. 1) Empty Datasource 이용(위의 소스와 동일)
  2. 2) Map List 이용
  3. 3) Dto List 이용
  4. 4) XML 이용
'BE/Java' 카테고리의 다른 글
  • [Jasper] 5. JasperStudio 기능 설명 - 2
  • [Jasper] 5. JasperStudio 기능 설명 - 1
  • [Jasper] 3. Jasper Studio 한글 설정
  • [Jasper] 2. Jasper Studio로 프로젝트 생성 방법
멍목
멍목
개발 관련 새롭게 알게 된 지식이나 좋은 정보들을 메모하는 공간입니다.
반응형
멍목
김멍목의 개발블로그
멍목
전체
오늘
어제
  • 분류 전체보기 (514)
    • BE (190)
      • Spring (21)
      • Java (141)
      • Kotlin (6)
      • JPA (22)
    • FE (33)
      • Javascript (16)
      • Typescript (0)
      • React (5)
      • Vue.js (9)
      • JSP & JSTL (3)
    • DB (32)
      • Oracle (22)
      • MongoDB (10)
    • Algorithm (195)
    • Linux (8)
    • Git (6)
    • etc (42)
    • ---------------------------.. (0)
    • 회계 (4)
      • 전산회계 2급 (4)
    • 잡동사니 (2)

블로그 메뉴

  • 홈
  • 관리

공지사항

인기 글

태그

  • 자기공부
  • MongoDB 기초부터 실무까지
  • 이펙티브 자바
  • 코테 공부
  • 자기개발
  • 자바 공부
  • 알고리즘 공부
  • Effective Java
  • 자바공부
  • 더 자바 애플리케이션을 테스트하는 다양한 방법
  • Oracle
  • 코틀린
  • 알고리즘공부
  • 프로젝트로 배우는 Vue.js 3
  • vue3 공부
  • 이펙티브자바
  • 더 자바 Java 8
  • 전산회계 2급 준비
  • 코테공부
  • 자바 테스팅 프레임워크
  • Java to Kotlin
  • 자기 개발
  • junit5
  • java 8
  • 자기 공부
  • JPA
  • 자바 개발자를 위한 코틀린 입문
  • MongoDB with Node.js
  • JPA 공부
  • MongoDB 공부

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.0
멍목
[Jasper] 4. Jasper Java 예제
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.