Example usage for org.springframework.web.context.request ServletWebRequest getParameterValues

List of usage examples for org.springframework.web.context.request ServletWebRequest getParameterValues

Introduction

In this page you can find the example usage for org.springframework.web.context.request ServletWebRequest getParameterValues.

Prototype

@Override
    @Nullable
    public String[] getParameterValues(String paramName) 

Source Link

Usage

From source file:edu.jhuapl.openessence.controller.ReportController.java

/**
 * Returns a File Download Dialog for a file containing information in the data details grid.
 *
 * @param request  the request contains needed parameters: the 'results' headers that appear in the grid
 * @param response the response object for this request
 *///from w w  w .  ja v  a  2  s . c o m
@RequestMapping("/exportGridToFile")
public void exportGridToFile(@RequestParam("dsId") JdbcOeDataSource ds, ServletWebRequest request,
        HttpServletResponse response) throws ErrorMessageException, IOException {

    TimeZone timezone = ControllerUtils.getRequestTimezone(request);
    response.setContentType("application/json;charset=utf-8");

    final List<Filter> filters = new Filters().getFilters(request.getParameterMap(), ds, null, 0, null, 0);
    final List<Dimension> results = ControllerUtils.getResultDimensionsByIds(ds,
            request.getParameterValues("results"));

    final List<String> columnHeaders = new ArrayList<String>();
    for (final Dimension result : results) {
        if (result.getDisplayName() != null) {
            columnHeaders.add(result.getDisplayName());
        } else {
            columnHeaders.add(messageSource.getDataSourceMessage(result.getId(), ds));
        }
    }

    final List<Dimension> accumulations = ControllerUtils.getAccumulationsByIds(ds,
            request.getParameterValues("accumId"));

    final List<OrderByFilter> sorts = new ArrayList<OrderByFilter>();
    try {
        sorts.addAll(Sorters.getSorters(request.getParameterMap()));
    } catch (Exception e) {
        log.warn("Unable to get sorters, using default ordering");
    }

    String clientTimezone = null;
    String timezoneEnabledString = messageSource.getMessage(TIMEZONE_ENABLED, "false");
    if (timezoneEnabledString.equalsIgnoreCase("true")) {
        clientTimezone = ControllerUtils.getRequestTimezoneAsHourMinuteString(request);
    }
    Collection<Record> points = new DetailsQuery().performDetailsQuery(ds, results, accumulations, filters,
            sorts, false, clientTimezone);
    response.setContentType("text/csv;charset=utf-8");

    String filename = messageSource.getDataSourceMessage("panel.details.export.file", ds) + "-"
            + new DateTime().toString("yyyyMMdd'T'HHmmss") + ".csv";
    response.setHeader("Content-disposition", "attachment; filename=" + filename);

    // Cache-Control = cache and Pragma = cache enable IE to download files over SSL.
    response.setHeader("Cache-Control", "cache");
    response.setHeader("Pragma", "cache");
    FileExportUtil.exportGridToCSV(response.getWriter(),
            columnHeaders.toArray(new String[columnHeaders.size()]), points, timezone);
}