mercredi 18 mars 2015

Spring tutorial example - Apache excel POI export using java config

I am looking at this mkyong tutorial for exporting to excel.


It looks pretty straight forward and not overly complicated. I was able to complete all of the steps except for the last one. The last step is a XML config step. I have my project setup using java annotation config and the example in the tutorial is in xml. How do I configure the following XmlViewResolver in 'java config' / annotaiton as opposed to xml? see code snippet below.




This is the part I dont know how to configure. I am trying to get it in annotation/java config format.


Spring Configuration



<beans ...>

<bean
class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping" />

<bean class="com.mkyong.common.controller.RevenueReportController" />

<bean class="org.springframework.web.servlet.view.XmlViewResolver">
<property name="location">
<value>/WEB-INF/spring-excel-views.xml</value>
</property>
</bean>

</beans>


File : spring-excel-views.xml



<bean id="ExcelRevenueSummary"
class="com.mkyong.common.view.ExcelRevenueReportView">
</bean>




This is what my controller looks like.



@Controller
public class RevenueReportController extends AbstractController{

private Logger log = LoggerFactory.getLogger(getClass());

@Override
@RequestMapping(value = "/search/exportToExcel", method = RequestMethod.GET)
protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {

String output = ServletRequestUtils.getStringParameter(request, "output");

//dummy data
Map<String,String> revenueData = new HashMap<String,String>();
revenueData.put("Jan-2010", "$100,000,000");
revenueData.put("Feb-2010", "$110,000,000");
revenueData.put("Mar-2010", "$130,000,000");
revenueData.put("Apr-2010", "$140,000,000");
revenueData.put("May-2010", "$200,000,000");

if(output ==null || "".equals(output)){
//return normal view
return new ModelAndView("RevenueSummary","revenueData",revenueData);

}else if("EXCEL".equals(output.toUpperCase())){
//return excel view
return new ModelAndView("ExcelRevenueSummary","revenueData",revenueData);

}else{
//return normal view
return new ModelAndView("RevenueSummary","revenueData",revenueData);

}
}
}

Aucun commentaire:

Enregistrer un commentaire