因此尝试在groovy中创建一个相对(我认为)的简单设置,并且缺少几个位。
基本上我正在尝试创建一个包含三个窗格,标题,左侧栏和主窗口的网页。 标题保持原样,左侧疼痛有一个控制器用于生成报告,右侧显示输出。到目前为止一切顺利,但有两个或可能有三个命令或功能我似乎无法掌握,搜索但我使用的搜索热量似乎没什么用处。
所以,首先是主要的.gsp,我怀疑它会加载结构。创建了一个名为calllog的控制器和视图。控制器为空,而index.gsp包含以下内容。
<meta name='layout' content='call-log'/>
<html>
<head>
<title>Call log</title>
</head>
<body>
<div id="CallLogo"><H1>Call Logger</H1></div>
<div id="controller">
<object type="text/html" data="dbstats/index">
<g:link controller="dbstats" action="index">This is something</g:link>
</div>
<div id="output">Your output here</div>
</body>
</html>
这是我的第一个问题,它似乎不是在创建我期待的div部分,它只是输出它。 其次,似乎没有加载,我也找不到运营商。
布局如下
<!doctype html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title><g:layoutTitle default="call-log"/></title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<asset:stylesheet src="calllog.css"/>
<asset:javascript src="call-log.js"/>
<g:layoutHead/>
</head>
<body>
<div class="CallLogo" id="CallLogo" role="banner"><a href="http://www.google.co.uk"><asset:image src="call.png" alt="call.png"/></a></div>
<g:layoutBody/>
<div id="controller" class="controller" role="contentinfo"></div>
<div id="output" class="output" style="display:none;"><g:message code="spinner.alt" default="Loading…"/></div>
</body>
</html>
我遇到的下一个问题可能有相同的答案,我该如何给某个动作打电话(或者回电话)。所以,dbstats控制器将提供一个菜单,一旦你按下提交,它将调用一个存储一些数据的提交类,我想要做的是让窗格返回索引,同时也启动一个进程生成输出到“正文”窗格。
=============更新:向前迈出两步...... ==================== 所以越来越近,设法解决布局和div的问题,也没有帮助我编辑错误的CSS文件。
网页现在看起来像这样
-------------------------------
| Logo |
-------------------------------
| Con | Output |
| tro | |
| lle | |
| r | |
| | |
-------------------------------
我设法更新,以便Controller功能正确加载,并有一个列表和一个提交按钮和所有。
然而,我无法弄清楚的是。一旦按下提交按钮,我已经阅读了我不想的信息(现在有效),我如何将控制器重新加载为控制器=“dbstats”action =“index”进入div控制器并调用一个函数用另一个控制器更新输出,比如controller = generateGraph action = graph。尝试重定向告诉我:
submitform的代码现在看起来像
def submitForm() {
def postIds = params.list('userform').get(0)
for ( e in session.users) {
session[e] = "False"
}
postIds.each() { postId ->
if ( postId.value == "1" ) {
session[postId.key] = "True"
//render {
//div(id: "Output", "Will do ${postId.key}<BR>")
//}>"
}
redirect(action: "CallLog")
}
} 给我的全部是 无法在此处发出重定向(..)。之前对重定向(..)的调用已经重定向了响应.. Stacktrace如下: 消息:无法在此处发出重定向(..)。之前对重定向(..)的调用已经重定向了响应。
很乐意重绘整个页面ID需要。
答案 0 :(得分:0)
<!doctype html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title><g:layoutTitle default="call-log"/></title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<asset:stylesheet src="calllog.css"/>
<asset:javascript src="call-log.js"/>
<g:layoutHead/>
</head>
<body>
<div id="siteWrapper">
<div class="CallLogo" id="CallLogo" role="banner"><a href="http://www.google.co.uk"><asset:image src="call.png" alt="call.png"/></a></div>
<g:layoutBody/>
<div id="controller" class="controller" role="contentinfo"></div>
<div id="output" class="output" style="display:none;"><g:message code="spinner.alt" default="Loading…"/></div>
</div>
</body>
</html>
-
<meta name='layout' content='call-log'/>
<html>
<head>
<title>Call log</title>
</head>
<body>
<div id="CallLogo"><H1>Call Logger</H1></div>
<div id="controller">
<object type="text/html" data="dbstats/index">
<g:link controller="dbstats" action="index">This is something</g:link>
</div>
<div id="output">Your output here</div>
<a onclick="<g:remoteFunction controller="Something" action="SomeAction" id="${yourId }" update="siteWreapper"/>"><b>click to update entire site content within body tags</b><br/>
</body>
</html>
另一种方法是使用javascript get
$.get("/"+baseapp+"/applications/getOwner?id="+id+"&two="+two,function(data){
$('#appOwner').hide().html(data).fadeIn('slow');
});
其中appowner是div ID,结果将更新get可以是getJSON
带params的remoteFunction:
<button id=boxbtn onclick="<g:remoteFunction controller="yourcontroller" action="br" update="siteContent" id="${some?.id}" params="${[s:'e',viewtype:'na']}"/>">some action</button>