- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个带有两个按钮的列表,我希望每次我按一个按钮时,都要处理与该按钮关联的代码。该代码在服务中,并且gsp文件是默认列表。
从gsp调用服务。我接受了这篇文章:( How do I call a Grails service from a gsp?)去做。
问题是我在服务中有两个方法,我不知道为什么,但是总是我输入list.gsp并总是我按按钮,我可以看到在grails控制台中显示的是这两个方法同时工作。
这是我每次按下按钮A或B时都可以在控制台中看到的内容:
2015-12-01 12:51:47,565 [http-bio-8090-exec-5]
hello
world
2015-12-01 12:51:47,565 [http-bio-8090-exec-5]
hello
2015-12-01 12:51:47,565 [http-bio-8090-exec-5]
world
2015-12-01 12:51:47,565 [http-bio-8090-exec-5]
hello
world
<%@ page import="com.app.test" %>
<%@ page import="mypackage.myService" %>
<!DOCTYPE html>
<html>
<head>
<meta name="layout" content="main">
<g:set var="entityName" value="${message(code: 'licenseType.label', default: 'LicenceType')}" />
<title><g:message code="default.list.label" args="[entityName]" /></title>
</head>
<body>
<a href="#list-licenseType" class="skip" tabindex="-1"><g:message code="default.link.skip.label" default="Skip to content…"/></a>
<div class="nav" role="navigation">
<ul>
<li><g:link class="create" action="create"><g:message code="default.new.label" args="[entityName]" /></g:link></li>
<% def LicenceTypeService =
grailsApplication.classLoader.loadClass('mypackage.myService').newInstance()%>
<li><g:link action="list"><g:message code="Calculate Licence Type" args="[entityName]" /><span>${myService.calculate()}</span></g:link></li>
<li><g:link action="list"><g:message code="Re-Calculate Licence Type" args="[entityName]" /><span>${myService.recalculate()}</span></g:link></li>
</ul>
</div>
class MyService {
def calculate(){
println "hello"
}
def recalculate(VoiceUser vUser){
println "world"
}
}
最佳答案
我可以肯定这是不可能的;您要问的是直接将Ajax call 发送到grails服务。如果您考虑一下,一旦客户端接收到生成的HTML,浏览器和后端(grails应用程序)之间就不会直接建立连接,因此不会有任何grails魔术使这种情况发生。
有一个grails标记g:remoteLink,它允许Ajax调用 Controller Action ,这时 Controller 是必需的,因为一旦生成的html到位,所有新交互都必须通过标准HTTP请求,并且请求是通过grails Controller 处理的。
最好的选择是创建一个包装这2个服务方法的 Controller ,并将操作与g:remoteLink
或另一个Ajax请求一起使用。
至于在gsp中使用服务,而不是实例化新服务,我会主张使用现有的spring bean。
更换:
<%@ page import="mypackage.myService" %>
...
<% def LicenceTypeService = grailsApplication.classLoader.loadClass('mypackage.myService').newInstance()%>
<g:set var="myService" bean="myService"/>
关于grails - gsp文件中服务中的方法无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34021097/
假设我有以下类(class) class Genre { static hasMany=[author:Author] } class Author{ static hasMany=[
我需要创建一个自定义gsp,其域模型设计如下 class Question { SortedSet choiceCollection; static hasMany = [choice
我想摆脱 create.gsp 和 save.gsp 并将所有内容都放在同一页面上。 我所做的是将所有这些字段移到 list.gsp 中列表的第一行 但现在我不知道如何将它与其余数据连接起来并使其工作
我在 weblogic 中使用 grails,需要更改展开的部署文件夹中的类文件。但这个类实际上是一个gsp编译的文件。 那么,问题是:GSP 文件 (.class) 在 war 中处于什么位置? 注
我是 Grails 新手。我正在尝试为站点中的每个产品显示图像缩略图,如下所示: /* 1 */ 这里的问题是我想在数据库中保存图片链接,并通过以下方式获取链接: ${fieldValue(bean:
希望我的问题非常简单。 我有两个不同的域以及相应的 Controller / View 文件夹等。 我想从第一个 _form.gsp 调用第二个 _form.gsp(在 g:each 中,因为会有多个
从gsp页(或类型库)是否可以中止html页的生成并回调到 Controller 方法以输出403 header ? 我们有一组用于管理页面的脚手架页面,并对其进行了修改,以测试访问该页面的用户是否具
这是在我的gsp中,它不起作用 我认为主要原因是我嵌套$ {}。我该怎么做。 $ {variable}是从 Controller 传递的字符串。 谢谢! 最佳答案 您不需要嵌套的$ {} 应该管用
当您编译 grails war 时,我知道 .groovy 代码被编译为字节码类文件,但我不明白容器(例如 tomcat)如何在请求 GSP 时知道如何编译它们。容器了解 GSP 吗?安装在服务器上的
在 GSP 中,是否可以创建到另一个 GSP 的直接链接?我知道我可以使用: 并在 UserController 中定义 foo 操作以仅显示相应的 GSP class UserController
我有一个域名 class Node { String nodeId String label Node parent } 在 GSP 页面中,我想从根开始并打印其所有
我有一个 grails 应用程序,在执行加载某些数据表的操作后,我单击数据表上的链接,重新执行相同的操作并再次加载相同的页面 - 所以,当它第二次加载时(单击链接后)看起来浏览器没有处理我页面上的任何
我创建了一个本地驱动器中的word文档,应该使用grails gsp页面在浏览器中打开它。 用于创建是创建链接还是使用脚本的选项有哪些。 在此先感谢您的帮助。 最佳答案 要打开或下载,有很多选择 是使
我想将域类中设置的所有值检索到客户端(gsp或Javascript) 假设我有一个名为GeneralSetting的域类。我使用的方法有效,但并非完全符合我的要求。 gsp文件 s console.
我是grails的新手,正在尝试访问索引页面。删除grails的默认主页后,出现以下错误 404 App1 / WEB-INF / grails-app / views / index.jsp des
在我的GSP中,我有一个选择标签 产生HTML -Select- USA UK 但是我需要从1开始有一个整数值(即,美国将具有值1和英国2) 我该怎么做 最佳答案 一种解决方案是,在将列表返
所以我想在一定时间后调用某个 gsp def index() { //code here //after 30secs r
我们正在使用 run-app 运行 grails 项目。第一次请求页面时,会出现延迟。然而,此后每次页面加载速度都会很快。 我能想到的最明显的解释是该页面尚未编译。有没有办法诱导编译或其他导致延迟的原
我有以下代码 Cart is Empty ${cart.size()} items 但是第一次访问该网站时(当购物车为空时)我收到“无法在空对象上调用方法 isEmpty(
我的域中有一个名为 status 的属性,它是 String 类型,可以具有两个值之一 Applied 、 NotApplied 我有两个复选框来输入该值。在我的编辑页面中,我想显示这两个复选框。 如
我是一名优秀的程序员,十分优秀!