Grails控制器索引操作中的动态条件

时间:2014-10-30 13:35:46

标签: grails controller criteria

我正在尝试更改Grails控制器的默认索引操作以启用一些基本搜索条件。

我有两个主要问题:

  1. 页面底部的分页控件会忘记我的搜索条件。
  2. 如何使用变量条件的grails条件createCriteria().list()操作。特别是,我应该如何考虑null(忽略)标准等内容?
  3. 编辑:我正在添加我的控制器代码:

        def index(Integer max) {
            session.alarmFilter = params.alarmFilter == null ? (session.alarmFilter == null ? [] : session.alarmFilter) : params.alarmFilter
            params.max = Math.min(max ?: 10, 100)
            def c = Alarm.createCriteria()
            def results = c.list (params) {
                if(session?.alarmFilter?.channelInterface != null) {
                    sqlRestriction("channel_interface_id = ${session.alarmFilter.channelInterface.id}")
                }
            }
            respond results, model:[alarmFilter: session.alarmFilter, alarmInstanceCount: results.totalCount]
        }
    

    我不喜欢在会话中保存搜索条件(alarmFilter),因为它实际上并不像会话信息。特别是,返回此页面将记住以前的搜索条件。

    如果未选择条件,if语句也会导致'SQLException'。

0 个答案:

没有答案