grails - 如何在Grails搜索中返回域对象的属性?

标签 grails model-view-controller gorm

我正在为一个相当小的项目编写自己的搜索。搜索页面由g:selects组成,它们由域对象字段填充,如下所示:

<g:form action="list" method="GET">
Last Name <g:select id="lastName" name="searchedLName" from="${StudentEntry.list(sort:lastName, order:desc)}"
        noSelection="['null':'None']" optionValue="lastName" value="${params.searchedLName}"/><br/> 
Submitted By <g:select id="submitter" name="searchedSubmitter" from="${UserAuth.list(sort:userName, order:desc)}"
        noSelection="['null':'None']" optionValue="userName" value="${params.searchedSubmitter}"/><br/>
<button id="submitIt" type="submit">Search</button>

这是域对象的片段
class StudentEntry {
     String firstName
     String lastName
     String submittedBy

String toString() {
    lastName + ", " + firstName
}

这是一些引导数据
def entry1 = new StudentEntry {
     firstName: "John"
     lastName: "Smith"
     submittedBy: "Jane Doe"
}

def entry2 = new StudentEntry {
     firstName: "James"
     lastName: "Jones"
     submittedBy: "Jane Doe"
}

这是来自StudentEntryController的列表的代码
def list(params) {
    def result

    println "Searched Last Name: " + params?.searchedLName
    def theLastName = params?.searchedLName
    println "Searched Last Name: " + theLastName

    println "Searched Submitter: " + params?.searchedSubmitter
    def theSubmitter = params?.searchedSubmitter
    println "Searched Submitter: " + theSubmitter

    if(params) {
       result = StudentEntry.findAllWhere(lastName: theLastName, submitter: theSubmitter)
//render...

当我运行搜索时,println语句输出与所选值关联的域对象的StudentEntry类的toString方法。例如,如果我搜索lastName =“Jones”,则println将输出Searched Last Name: Jones, James。当我想查看James Jones的条目时,我的render方法返回一个空列表。

将对象的属性而不是对象本身传递给findAllWhere方法的正确方法是什么?

最佳答案

似乎我忽略了将要搜索的字段指定为g:select中的optionKey属性。 println语句现在正在输出所需的数据。

关于grails - 如何在Grails搜索中返回域对象的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31702097/

相关文章:

ruby-on-rails - 没有路由匹配 { :action= >"completed", :controller= >"lifetimes", :lifetime_id=>14} 缺少必需的键:[:id]

grails - Grails 3.3.0/Gorm:如何通过联接进行查询

java - 如何在 Apache Web 服务器上运行 Grails 应用程序 WAR 文件?

unit-testing - 使用闭包对 GORM 调用进行单元测试

jquery - 悬停效果在标签内不起作用

javascript - C# MVC 在点击时调用 javascript 函数

grails - Grails + Shiro + LDAP

java - 在Grails中导入/使用Java类

jquery - 按名称搜索但按ID保存

grails - 移植到grails 3时将MappingFactory转换为ToMany的ClassCastException