Spring + jasperreport (1)


HKH

Share

Eclipse 설정

1.  ***-servlet.xml

~~-servlet.xml 파일을 열어 property파일을 사용하기 위해 태그 속성을 추가한다

 

<bean id="viewMappings" class="org.springframework.web.servlet.view.ResourceBundleViewResolver">

    <property name="basename" value="jasperreports-views" />

    <property name="order" value="0" />

</bean>

 

<* URL*.do패턴인 경우 ViewResolverJSP파일보다 먼저 찾도록 order속성을 준다.>


2. jasperreports-views.properties

WEB-INF\classes폴더에 jasperreports-views.properties 파일 생성

내용 입력

    

multiformat-view(model에 넘길 이름).(class)=org.springframework.web.servlet.view.jasperreports.JasperReportsMultiFormatView

multiformat-view.url=/WEB-INF/reports/파일명.jrxml

multiformat-view.reportDataKey=datasource

 

 

3.  *.jrxml file

Report 파일은 WEB-INF\reports\ 폴더 내에 복사 한다.

PDF한글 출력을 위해 H2GTRM.TTF FONT 파일도 같은 경로에 위치 시킨다.

4. 컨트롤러 세팅

ReportController.java  – PDF로 출력할 경우


@Controller

public class ReportController {

@RequestMapping(value = "/reports/test.do")

public ModelAndView test(

@ModelAttribute(“testVO") TestVO testVO,

Map<String, Object> map, ModelMap model) throws Exception{

본인 프로젝트에 맞는 방법으로

쿼리를 실행하여 값을 리스트에 담는다

         

          List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();

          return JasperReportUtil.render("multiformat-view", list, "pdf");

}

 

multiformat-view : jasperreport-views에 설정한 이름

list : 쿼리를 통해 db에서 불러온 값

pdf: 출력할 형식 (multiformat-view는 기본적으로 pdf, csv, xls, html 형식을 지원한다.

이때 iReport에서 설정한 field 명과 Map에 담기는 키 값이 일치해야 한다. 

 

 

ReportController.java


 

 

 

public static class JasperReportUtil extends Exception {


private static final long serialVersionUID = 1L;


public static ModelAndView render(String templateId, List<Map<String, Object>> list,, String fmt) {


         JRBeanCollectionDataSource src = new JRBeanCollectionDataSource(list);

         ModelAndView mv = new ModelAndView();


         mv.setViewName(templateId);      //​ multiformat-view

         mv.addObject("format", fmt);        //pdf

         mv.addObject("datasource", src);  //list DataSource -> “datasourcejasperreport-views.properties 파일의

                                                         multiformat-view.reportDataKey의 이름과 일치해야한다.


         return mv;

       }

} 

 

 

첨부파일
첨부된 파일이 없습니다.
Sign in required
  • : {{i.writer }}
    {{i.regdate}}


    {{i.content||breakFilter }}