jqgrid

$("#tblist1")

.jqGrid('navGrid', '#pager', {

add: false,

edit: false,

del: false,

search: false,

refresh: false

})

.jqGrid( 'navButtonAdd', "#pager", {

caption : "Export to CSV",

buttonicon : "ui-icon-arrowthickstop-1-s",

onClickButton : function() {

$("#tblist1").jqGrid('excelExport',{"url":"./excel/as.do"});

},

position : "first",

title : "Export to CSV",

});


controller

@RequestMapping("/excel/as")

public ResponseEntity<String> csvAsList(Locale locale, AsVO asVo,

@RequestParam Map<String, String> map) throws Exception {

Comm.jqgridSearchFormSetVO(map.get("filters"), asVo);


List<AsVO> excelList = asService.excelList(asVo); // DB에서 가져온 데이터리스트

String data = new DataToCSV().as(excelList);


HttpHeaders header = new HttpHeaders();

header.add("Content-Disposition", "attachment; filename=\"" + "as.csv" + "\"");

header.add("Content-Type", "text/csv; charset=MS949");


return new ResponseEntity<String>(data, header, HttpStatus.OK);

}


servlet-context.xml - UTF-8 프로젝트라서 예외처리용

<beans:bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">

<beans:property name="messageConverters">

<beans:list>

<beans:bean class="org.springframework.http.converter.StringHttpMessageConverter">

<beans:property name="supportedMediaTypes">

<beans:value>text/plain;charset=UTF-8</beans:value>

</beans:property>

</beans:bean>

</beans:list>

</beans:property>

</beans:bean>


pom.xml

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-context-support</artifactId>

<version>$</version>

</dependency>


<!-- mail -->

<dependency>

<groupId>javax.mail</groupId>

<artifactId>javax.mail-api</artifactId>

<version>1.5.4</version>

</dependency>

<dependency>

<groupId>com.sun.mail</groupId>

<artifactId>javax.mail</artifactId>

<version>1.5.3</version>

</dependency>

대부분의 문서가 이 3개중에 javax.mail-api만 표기한 경우가 많았는데 3개가 모두 있어야 메일발송이 정상적으로 된다.


servlet-context.xml

<!-- mail bean -->

<beans:bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">

<beans:property name="host" value="smtp.gmail.com"/>

<beans:property name="port" value="25"/>

<beans:property name="username" value="gmailid@gmail.com"/>

<beans:property name="password" value="gmail password"/>

<beans:property name="javaMailProperties">

<beans:props>

<beans:prop key="mail.smtp.auth">true</beans:prop>

<beans:prop key="mail.smtp.starttls.enable">true</beans:prop>

<beans:prop key="mail.smtp.timeout">8500</beans:prop>

<beans:prop key="mail.debug">true</beans:prop>

<beans:prop key="mail.transport.protocol">smtp</beans:prop>

</beans:props>

</beans:property>

</beans:bean>

이건 흔한 gmail 설정이다.


service

@Autowired

private JavaMailSender mailSender;


{

MimeMessage message = mailSender.createMimeMessage();

message.setFrom(new InternetAddress(from));

message.addRecipient(RecipientType.TO, new InternetAddress(to));

message.setSubject(subject);

message.setText(text, "utf-8", "html");

mailSender.send(message);

}

기본 html형식의 메일발송법이다. 첨부파일은 해본 다음에 수정하겠다.


참고:

http://www.mkyong.com/java/java-lang-classnotfoundexception-com-sun-mail-util-messageremovedioexception/ 외



'Java' 카테고리의 다른 글

StringBuilder 용 replace 함수  (0) 2015.08.19
사이트 긁어오기  (0) 2015.08.19
mybatis의 insert후 sequence 가져오기  (0) 2014.08.21
MS-SQL JDBC 추가하기.  (0) 2014.07.28
MIME 타입 알아내는 방법  (0) 2013.10.02

mybatis를 쓰면서 실행쿼리문을 콘솔에서 확인하고 싶은데 알아본 것은 log4jdbc다.

하지만 log4jdbc는 메이븐을 지원하지 않아 좀 더 찾아본 결과 log4jdbc-remix가 있었다.


pom.xml

<!-- log4jdbc-remix -->

<dependency>

   <groupId>org.lazyluke</groupId>

   <artifactId>log4jdbc-remix</artifactId>

   <version>0.2.7</version>

</dependency>


jdbc.properties

jdbc.driverClass=net.sf.log4jdbc.DriverSpy

jdbc.url=jdbc:log4jdbc:oracle:thin:@.....


log4j.xml

<!-- log4jdbc option  log the jdbc results as a table --> 

<logger name="jdbc.sqltiming" additivity="false"> 

<level value="debug" /> 

<appender-ref ref="console" /> 

</logger>


mybatis-context.xml

  <bean id="dataSourceSpied" class="...">

    <property name="driverClass" value="$"/>

    <property name="jdbcUrl" value="$"/>

    <property name="user" value="$"/>

    <property name="password" value="$"/>

    ...

  </bean>


  <bean id="dataSource" class="net.sf.log4jdbc.Log4jdbcProxyDataSource">

    <constructor-arg ref="dataSourceSpied" />

  </bean>



출처 : https://code.google.com/p/log4jdbc-remix/ 외

'Java' 카테고리의 다른 글

EL 함수 추가하기  (0) 2013.09.10
Apache POI 추가  (0) 2013.08.22
Spring Interceptor 예외처리  (0) 2013.08.08
ojdbc14 추가  (0) 2013.06.24
ibatis 상황별 쿡북 - My SQL 기준  (0) 2011.06.17

이하 방식은 스프링 3.2 이상에서 사용할 수 있다.


Interceptor

@Component("loginInterceptor") // 없어도 되나 있으면 편하다.

public class 인터셉터 이름 extends HandlerInterceptorAdapter {

.

.

.

}


servlet-context.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans:beans xmlns="http://www.springframework.org/schema/mvc" 

                      xmlns:beans="http://www.springframework.org/schema/beans"

<!-- 

  보통은 bean이 기본태그인데 spring mvc project 템플릿으로 시작했더니 mvc가 기본태그이다.

-->

.

.

.>


.

.

.

<!-- Interceptor -->

<interceptors>

<interceptor>

<mapping path="/**"/> <!-- 포함되는 url -->

<exclude-mapping path="/resources/**"/> <!-- 제외하는 url -->

<beans:ref bean="loginInterceptor" /> <!-- 인터셉터 애노테이션 이름 -->

<!-- 애노테이션으로 안했다면  

<beans:bean class="인터셉터 패키지 포함 풀경로"></beans:bean>

-->

</interceptor>

</interceptors>

.

.

.



'Java' 카테고리의 다른 글

EL 함수 추가하기  (0) 2013.09.10
Apache POI 추가  (0) 2013.08.22
Spring 실행 쿼리문 콘솔 출력 - log4jdbc-remix (feat. 메이븐)  (0) 2013.08.08
ojdbc14 추가  (0) 2013.06.24
ibatis 상황별 쿡북 - My SQL 기준  (0) 2011.06.17

+ Recent posts