Sql Grails-如何将personInstance ID从gsp发送到域类?

Sql Grails-如何将personInstance ID从gsp发送到域类?,sql,grails,Sql,Grails,我是grails的新手,我需要你们的帮助。 我在域类中有sql查询。我放置[1]以查看结果,但最终我希望在该位置发送一个参数,以根据此人的id号显示结果 def dataSource def someMethod() { def sql = new Sql(dataSource) def resultRows = sql.rows('select * from result where id = ?', [1]) } 这就是我的普惠制 <g:each in="${p

我是grails的新手,我需要你们的帮助。 我在域类中有sql查询。我放置[1]以查看结果,但最终我希望在该位置发送一个参数,以根据此人的id号显示结果

def dataSource

def someMethod() {

    def sql = new Sql(dataSource)

    def resultRows = sql.rows('select * from result where id = ?', [1])
}
这就是我的普惠制

<g:each in="${personInstance.someMethod()}" status="i" var="results">
    <tr class="${(i % 2) == 0 ? 'even' : 'odd'}">
        <td>${results.column_1}</td>
        <td>${results.column_2}</td>
        <td>${results.column_3}</td>
    </tr>
</g:each>

${results.column_1}
${results.column_2}
${results.column_3}
如何将参数从视图发送到域类? 请帮忙


提前感谢。

如果您想了解Grails“希望”控制器和视图代码的外观,请尝试让Grails为您生成代码。即使您没有在最终项目中保留该代码,它仍然是一个有用的教学工具

arc$ grails create-app Tester1
arc$ cd Tester1
arc$ grails
grails> create-domain-class Person
-- add some attributes to your Person domain class, save the file
grails> generate-all tester1.Person
现在来看PersonController.groovy和各种视图。基本上,它是在控制器中封送数据,将数据传递给视图,视图根据给定的内容进行操作

向gsp传递任意数据的最基本示例:

// show method for an Adventure
def show(Adventure adventure) {
    // a String to pass to the gsp
    def attribute = 'Bilbo'
    // an Array to pass to the gsp
    def attributeList = ['Dwalin','Balin','etc']
    // create a map of values that are 'automagically' passed
    // to the show.gsp
    [adventure: adventure, hobbit: attribute, dwarves: attributeList]
}

冒险、霍比特和矮人变量都可以在gsp中使用。模板代码喜欢使用详细的命名,比如adventureInstance,但是只要您的gsp代码使用您定义的映射中的键名,就可以了

我认为数据流向了错误的方向。控制器应向视图提供数据,视图不应查找数据。如果控制器还没有您的ID(如果它是从用户输入派生的),那么应该存在一个视图,该视图使用表单将数据提交给控制器,然后控制器可以提供此视图。那么我应该如何做呢?我应该将该方法放入控制器中吗?那么我如何在表中查看它呢?让操作(控制器中的方法)根据传入的参数返回必要的数据。这是我的问题。我无法理解传入参数的语法。我做到了。这让我很困惑,很多事情都是这样的。。。我的问题是我无法理解传入参数的语法。嗯…,我的两分钱建议您将数据封送代码从gsp中取出并放入控制器(移动personInstance.someMethod()代码)。在一些营地。我们相信,模型具有业务逻辑、控制器封送给定输入(参数)的数据以及刚刚出现的视图。因此,在控制器方法中,从someMethod()调用中获取数据,并将其传递给视图。是的!我解决了这个问题。谢谢danehammer、tylerwal和railsdog。我确实将我的逻辑放在控制器中,并使用结果图在GSP中查看它。