2014-09-18 2 views
0

Так что пытаюсь создать относительно простую настройку (я думал) в groovy и пропустить пару бит.Загрузка Groovy в divs

В основном я пытаюсь создать веб-страницу с тремя панелями, заголовком, левой боковой панелью и основным окном. Название остается как есть, левая боль имеет контроллер для генерации отчетов, правая часть показывает результат. Пока все хорошо, но есть две или потенциально три команды или функции, которые я, похоже, не умею выполнять, но поиск, который я использовал, приносит мало полезного.

Итак, сначала основной .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&hellip;"/></div> 
    </body> 
</html> 

Следующая проблема У меня есть, что может иметь тот же ответ, как я могу позвонить (или сделать обратный вызов) к действию. Таким образом, контроллер dbstats предоставит меню, как только вы нажмете submit, он вызовет класс отправки, который хранит некоторые данные, что я хочу сделать, - это вернуть эту область к индексу, а также запустить процесс для генерации вывода на панель «тело».

ОБНОВЛЕНИЕ: Один шаг вперед Два шага ... ===================== ближе, удалось решить проблемы с макетом и divs, не помогло, что я редактировал неправильный файл CSS.

Веб-страница выглядит следующим образом теперь

------------------------------- 
|    Logo   | 
------------------------------- 
| Con |   Output  | 
| tro |      | 
| lle |      | 
| r |      | 
|  |      | 
------------------------------- 

мне удалось обновить так, что функция регулятора нагрузки правильно, и есть список и кнопку отправить и все.

Однако я не могу понять. Как только кнопка «Отправить» нажата, и я прочитал информацию, которую я wan't (что работает сейчас), как мне получить контроллер, перезагруженный как 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 следует: Сообщение: Невозможно передать перенаправление (..) здесь. Предыдущий вызов перенаправления (..) уже перенаправил ответ.

Был бы рад перерисовать всю идентификацию страницы.

+1

Не следует ли помечать этот вопрос «граалями»? – Opal

ответ

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&hellip;"/></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("/"+baseapp+"/applications/getOwner?id="+id+"&two="+two,function(data){ 
          $('#appOwner').hide().html(data).fadeIn('slow'); 
        }); 

где appowner является DIV ID результат будет обновлять ГЭТ можно getJSON

remoteFunction с параметрами:

<button id=boxbtn onclick="<g:remoteFunction controller="yourcontroller" action="br" update="siteContent" id="${some?.id}" params="${[s:'e',viewtype:'na']}"/>">some action</button> 
+0

vahid: Большое спасибо, это проясняет некоторые части, но я думаю, что мне не хватает одной вещи. Поэтому я хочу загрузить контроллер в dbstats, и когда кто-то нажимает кнопку submit, я хочу, чтобы контроллер dbstats обновил выходной файл. Поэтому в действительности я хочу сделать vrghost

+0

, тогда вам нужно g: remoteForm посмотрите здесь https: // github.com/vahidhedayati/spring-security-contactus/blob/master/grails-app/views/contactUs/index.gsp, это затем обновит результаты до div – Vahid

+0

, вы также можете добавить параметры в ответ g: remoteFunction с помощью типичный формат. javascript, чтобы сделать, заглянуть в эту папку https://github.com/vahidhedayati/ajaxdependancyselection/blob/master/grails-app/views/autoComplete/_selectJs.gsp, это типичный процесс получения, но получение грааля до где действие контроллера означает, что оно будет определять ваше имя приложения, если оно вызвано таким образом – Vahid