所有
我有两个问题,一个主要的一个未成年人。我的小问题是为什么这个简单的grails
应用程序不起作用?
人员区域
package ajax
class Person {
String firstname
String lastname
int age
static constraints = {
}
}
的HomeController
package ajax
class HomeController {
def index() {
render (view: "index")
}
def greet()
{
render "hi"
}
def getPersons()
{
def persons = Person.getAll()
render(model: [persons:persons])
}
}
index.gsp中
<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<head>
<title></title>
<g:javascript plugin="jquery" />
</head>
<body>
<div id="greeting"></div><br>
<button onclick='<g:remoteFunction action="greet" update="greeting"/>'>Click on me!</button>
</body>
</html>
最后我的主要问题是,在index.gsp中,如果我想将按钮操作更改为getPersons
,那么我将如何通过ajax或jquery获取数据,例如g:remoteFunction
。如果我确实获得了数据,我将如何格式化#greeting
中的数据,以便获得firstname
和lastname
。
答案 0 :(得分:1)
以下解决方案应该有效:
<强> PersonController 强>
package ajax
class PersonController {
def index() {
render Person.list(params) as JSON
}
}
这是您的JSON后端。在前端,您可以使用普通的旧jquery来执行ajax调用:
<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<head>
<title></title>
<g:javascript plugin="jquery" />
</head>
<body>
<div id="persons"></div><br>
<button id='fetch-persons'>Fetch Persons</button>
<g:javascript>
$(document).ready(function(){
$('#fetch-persons').click(function(){
$.getJSON('/person/index.json', function(data) {
$('#persons').html(JSON.stringify(data));
});
});
});
</g:javascript>
</body>
</html>