Export CSV โดยใช้ Struts Velocity

ต้องมี WEB-INF\ lib velocity-1.4.jar ,velocity-tools-1.2.jar

1.set ที่ web.xml

 

   <servlet>

        <servlet-name>velocity-csv</servlet-name>

        <servlet-class>org.apache.velocity.tools.view.servlet.VelocityViewServlet</servlet-class>

        <init-param>

            <param-name>contentType</param-name>

            <param-value>application/csv</param-value>

        </init-param>

        <init-param>

            <param-name>org.apache.velocity.toolbox</param-name>

            <param-value>/WEB-INF/velocity/toolbox.xml</param-value>

        </init-param>

        <init-param>

            <param-name>org.apache.velocity.properties</param-name>

            <param-value>/WEB-INF/velocity/velocity-csv.properties</param-value>

        </init-param>

        <load-on-startup>10</load-on-startup>

    </servlet>

 

<servlet-mapping>

        <servlet-name>velocity-csv</servlet-name>

        <url-pattern>*.csv</url-pattern>

    </servlet-mapping>

 

2. ReportCSV.csv

 

$response.addHeader("Content-Disposition", "attachment;filename=reportuser.csv")

,#foreach($user in $listuser)

      $user

,#end

 

3.set strust-config.xml

 

        <!--Export CSV-->

        <action path="/reportuser"

                type="com.arg.isbc.struts.actions.CreateCSVReportUserAction"

                name="userForm"

                scope="request">

            <forward name="success" path="/pages/csv/reportuser.csv"/>

        </action>

 

4.ข้อควรจำ ต้อง คลิก link หรือ ปุ่ม
(ไม่ควร ใส่ Url ตรงๆที่ Internet Explore เพราะจะทำให้ไม่สามารถเปิด File .CSV มาดูได้)

 

<tr><td><a href="reportuser.do" class="link_menu">Export User Report</a></td></tr>