最后更新:它似乎是问题与geomap相关,并且不想更新,现在使用jvectormap重写它,因为这更符合我的要求。Grails什么是重新加载gsp的正确方法
所以
得到其中有两个箱的应用程序,一个包含了一堆控制器(分辨率,区域和东西)的。它会对第二个盒子进行远程调用,然后将该数据提取出来并提取一堆东西,设置数据然后发送到谷歌可视化。但是,如果我在类中使用渲染,它可以很好地工作,可以看到它提取了正确的变量,并且它们看起来像是从一开始就做的。
问题是,如果我让它运行不渲染,那么GSP页面不会重新加载,它显示的是相同的代码最初加载(实际上,所产生消失图片)
是有一种方法,我应该告诉gsp页面重新加载或类似?
下面是像一个魅力的作品(如果控制器使输出)remotesubmit
<g:formRemote name="mapRepmote" on404="alert('not found!')" update="page-body"
url="[controller: 'mapren', action:'show']">
<g:if test="${listreg == 'true'}">
Regulation: <g:select name="regsel" from="${reglist}" value="${regreq}" />
</g:if>
<g:else>
Regulation: ${regreq}
</g:else>
Resolution: <g:select name="ressel" from="${reslist}" value="${resreq}" />
Region: <g:select name="mapsel" from="${maplist}" value="${mapreq}" />
<div id="bupdate"><Button type="submit">Update</Button></div>
</g:formRemote>
编辑:究竟是什么 所以被玩弄和一遍遍得到相同的结果。 因此,来自mapren控制器的显示操作似乎被调用。我可以看到对db层和所有的调用。如果我添加三个渲染陈述我可以看到,请求在未来。
def show(String regsel, String mapsel, String ressel) {
String mapcode
switch (mapsel) {
case "World":
mapcode="world"
break
case "Europe":
mapcode=150
break
case "Asia":
mapcode=140
break
case "Africa":
mapcode=002
break
case "Central Ameirca":
mapcode=017
break
case "Pacific":
mapcode=035
break
default:
mapcode="world"
}
def restem = ressel.split('x')
String mwidth = restem[0]
String mheight = restem[1]
render "I was asked to show reg: ${params.regsel} <BR>map: ${params.mapsel}<BR>Resolution ${params.ressel}<BR>"
render "will generate map for ${regsel} on code ${mapcode} resolutio"
render "I will ${mwidth} and ${mheight}"
def query = Regstat.where {
(reg==regsel)
}
def regcolumns = [['string', 'Country'],['number', regsel + 'Status']]
def results = query.list(sort:"lupdate")
def regdata = []
results.each {
regdata << [it.country.countryname,it.status]
}
def RegColors = ['0xF0F0F0','0x66CCFF','0x0000FF','0xCC66FF','0x9900CC','0x7D7D7D']
[reg_columns: regcolumns, reg_data: regdata,reg_colors: RegColors, regioncode: mapcode, wwidth: mwidth, wheight: mheight]
}
}
但如果我删除渲染电话,我本来期望的是,show.gsp它将不会加载? 但没有这样的运气。 已附加show.gsp文件。请注意,它是在索引针对它生成第一个geomap时生成的。
<%@ page import="org.grails.plugins.google.visualization.util.DateUtil" %>
<html>
<head>
<script src="http://maps.google.com/maps?file=api&v=2&key=ABCDEFG" type="text/javascript"></script>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
</head>
<body>
<script type="text/javascript">
function selectHandler(e) {
alert('A table row was selected');
}
</script>
<gvisualization:geoMap elementId="page-body" showLegend="${false}" region="${regioncode}" width="${wwidth}" height="${wheight}" colors="${reg_colors}" columns="${reg_columns}" data="${reg_data}" />
</body>
</html>
这应该没有任何行动的工作。什么版本的Grails? – 2014-10-04 12:44:18
2.4东西,不到一个月大。难道是因为那个div中的gsp最初使用 –
vrghost
2014-10-04 14:11:55
加载好,groovy 3.6.1,不确定我从2.4得到了什么。看起来像代码类的作品,可以看到正确的调用数据库来收集信息,但由于某些原因,html代码没有更新,我可以看到旧的代码(我加载到div的初始视图,相同的控制器和操作),以及如果我在浏览器上执行查看源的数据。 – vrghost 2014-10-04 15:56:24