grails - 如何修改传递到Grails GSP中的属性的值

标签 grails grails-2.0

我要求能够更改bean的值(属性)
传递给一个gsp。我正在使用grails 2.3.11。

参见下面的代码-这不会修改bean-请告知如何完成?

在第1行,这是尝试用新值替换属性-
地点-> Xenue。
在第2行,这表明该值未更改。

// locns.gsp
<!DOCTYPE html>
<html >
    <head>
        ...
        <script type="text/javascript">
            <g:each in="${locns}" status="i" var="locn">
                var x = '${locn.addr1}'.replace("V", "X");
                locn.addr1 = x;                     #1
            </g:each>
        </script>   
    </head>
    <body>
        <g:each in="${locns}" status="i" var="locn">
            ${locn.addr1}                           #2
        </g:each>
    </body>
</html>

// Controller:
def locns() {
    Locn[] locns = new Locns[2];
    locns[0] = new Locn();
    ...     
    locns[0].addr1 = "Venue Point"; 
    locns[0].addr2 = 'London';
    ...
    [locns:locns]
}

// attribute / bean class   
class Locn {
    public String addr1;
    public String addr2;
    ...
}

谢谢你,史蒂夫。

最佳答案

您应该能够执行这样的操作(即使不建议这样做,并且您的 Controller 也应该处理)

at #1
<g:each in="${locns}" status="i" var="locn">
<% def locnChanged = new ArrayList<>() %>
<% def x = locn %>
<% x.locn = locn.addr.replace("V", "X") %>
<% locnChanged.add(x) %>
</g:each>

at #2
<g:each in="${locnChanged}" status="i" var="locn">
${locn.addr1}
</g:each>

那里不需要javascript。但是再一次,您不应该在GSP中处理此问题。

关于grails - 如何修改传递到Grails GSP中的属性的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28881462/

相关文章:

javascript - jQuery $.ajax 函数有效,但简写函数如 $.get/$.getJSON 无效——使用 jQuery 1.7.2 和 Grails 2.1 以及 twitter bootstrap

object - 如何使用Controller(Grails 2.3.11)上的Command Object进行更新?

hibernate - Grails - 如何强制执行至少一对多关系

mongodb - 如何使用Grails 2.2.2从mongoDb检索数据

Grails 资源插件 - AJAX 时需要带有 JS 文件的模块

grails - 在Grails(2.4.3)插件上看不到更新

grails - 服务是否可以返回 404 响应?

hibernate - 如何在Grails中的hasMany关系中指定查询?

grails - 没有在 Controller 中获取域类注释

grails - 使用属性映射未设置属性的新的Domain对象