我要求能够更改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/