【问题标题】:How to call a Controler Action through inner g:each from GSP?如何通过 GSP 的内部 g:each 调用控制器操作?
【发布时间】:2012-07-25 08:10:23
【问题描述】:

我有一个名为 Student 的域类。它包含一些变量,例如 student_name,student_address,student_class。实际上我想按 student_class 的顺序显示学生详细信息

我有一个名为 list.gsp 的 GSP 页面。 list.gsp:

<g:each in="${std}" status="v" var="stdInstance"> //All Class eg:1..10.
<h3>${stdInstance.std_class}</h3>                   
 //Innerloop     
//here i want to display students details depending on the value of stdInstance.std_class.
</g:each>  

我想知道如何通过内部 g:each 调用控制器动作并传递参数。

【问题讨论】:

  • 变量 std 是对象的“列表”吗?你是说你需要遍历这个列表并根据每个“stdInstance.std_class”中的值你需要做些什么吗?

标签: grails gsp


【解决方案1】:

在我的项目中,我使用以下内容在需要时将登录部分包含到我的 GSP 页面中:

<g:include controller="user" action="login"/>

其中controller 是控制器名称,action 是控制器中的方法。您可以使用此标记中的params="..." 属性来传递参数。我相信你可以在你的情况下做同样的事情。例如

<g:include controller="user" action="login" params="..."/>

【讨论】:

  • 只要确保视图存在即可。在这种情况下,它会期望“${PROJECT_DIR}/grails-app/views/user/login.gsp”
  • params 属性格式如下: params="['arg1':'String to pass through']"
【解决方案2】:

我宁愿对控制器中的 std 列表进行排序并传递已排序的列表。您唯一要更改的不是传递列表,而是传递list.sort{/*the order you want*/}

如果不是,请使用 g:each 中的排序...不过我想这可能是模棱两可的。看看sort closure

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-10
    相关资源
    最近更新 更多