附加到参数的 GSP 表单参数 - 需要覆盖

GSP form parameter appended to params - need overwrite

我有以下表格:

<g:form controller="${controllerName}" action="${actionName}" params="${params}">
    <g:select name="publisher_status" from="${['Active']}" value="${publisher_status}" noSelection="${[null:'No Filter']}" />
    <button type="submit" class="btn btn-default btn-primary btn-sm ">Apply</button>     
</g:form>

每次提交此表单时,publisher_status 值都会附加到前一个值,从而产生一个列表,如 publisher_status=[null,'Active'] 等。我真正需要的是覆盖前一个值,所以我总是只有一个字符串。我在上面的表格上方和下方尝试了以下操作,但它不起作用:

  <g:set var="params" value="${params.remove('publisher_status')?params:params}"/>

关于如何解决这个问题有什么建议吗?

您不能像那样设置 params,但您可以过滤传递给 g:form 的地图:

<g:form controller="${controllerName}" action="${actionName}"
        params="${params.findAll {k, v -> k != 'publisher_status'}}">