У меня есть список с двумя кнопками, и я хочу, чтобы каждый раз, когда я нажимаю кнопку, работаю над кодом, который я связал с этой кнопкой. Этот код находится в сервисе, а файл gsp является стандартным списком. GspМетоды в обслуживании не работают нормально в файле gsp
Чтобы вызвать службу из gsp. Я взял этот пост :(How do I call a Grails service from a gsp?), чтобы сделать это.
Проблема в том, что у меня есть два метода в сервисе, и я не знаю почему, но всегда, что я вхожу в список.gsp, и всегда, когда я нажимаю кнопку, я могу видеть отображение в консоли grails, что оба метода работают одновременно.
Это то, что я могу видеть в консоли каждый раз я нажимаю кнопку А или 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
и если Я нажимаю кнопку B:
2015-12-01 12:51:47,565 [http-bio-8090-exec-5]
world
И это то, что я могу видеть в консоли каждый раз, когда я запускаю и вводить gsp.file, и я хочу, чтобы не запускать код, если я не нажать на кнопку:
2015-12-01 12:51:47,565 [http-bio-8090-exec-5]
hello
world
Заранее спасибо
Это мой код в GSP:
<%@ 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"
}
}
Не используйте 'remoteLink' или любой из' remote' тегов. Они старые, их больше не поддерживают, они уходят в современных версиях Grails. Это плохая практика, и вы должны прекратить их использовать. –
я добавлю, что вы сказали мне: <г: множество переменная = "MYSERVICE" боб = "MYSERVICE" /> \t \t \t \t \t \t \t \t
@JoshuaMoore, спасибо за информацию. Есть ли современный тег для выполнения Ajax-звонков? Я использую угловой и его $ http-провайдер, поэтому я не знаком со строгим гралированием. – tylerwal