Параметры, которые вы даете taglib, влияют только на ссылку, предоставленную Grails.Если вы хотите, чтобы ссылка содержала параметры, изменяющиеся после рендеринга страницы, такие как значения, выбранные датчиками, тогда вам нужно использовать Javascript.Вот грубый пример:
$('.menuButton a').click(function() {
var target = this.href + '&reportStartDate=' + $('#reportStartDate').val();
window.location.href = target;
return false;
});
В идеале, ваши кнопки экспорта отправят форму, содержащую указатели даты, и вам не нужно будет использовать Javascript.Вы должны написать свои собственные форматы taglib, чтобы сделать это.Это поможет вам начать:
- Создайте новый taglib в вашем проекте.Дайте ему
namespace = 'export'
, чтобы он мог переопределять теги плагина.Скопируйте тег formats
из ExportTagLib
в новую метку. - Измените тег
<a>
на кнопку отправки: input(type: 'submit', name: 'format', value: format)
- Если вы хотите использовать графические кнопки, используйте это вместо:
input(type: 'image', name: 'format', value: format, src: g.resource(plugin: 'export', dir: 'images/skin', file: format + '.png'))
- Теперь вам понадобится тег
<form>
вокруг тега <export:formats>
в вашем GSP.
Вы не сможете использовать params.extension
в вашем контроллере, но не сложно определить расширение файла по формату.