?

Log in

Русскоязычное сообщество Groovy & Grails' Journal
 
[Most Recent Entries] [Calendar View] [Friends]

Below are the 20 most recent journal entries recorded in Русскоязычное сообщество Groovy & Grails' LiveJournal:

[ << Previous 20 ]
Sunday, April 22nd, 2012
12:17 am
[sofiamoon]
Проблема с Ajax
Пробывал по гайду из книги:

Код представления:

[Код (открыть)]
<html>
<head>
    <title>Random Quote</title>
    <g:javascript library="prototype"/>
</head>
<body>
<ul id="menu">
    <li>
        <g:remoteLink action="ajaxRandom" update="quote">
            Next Quote
        </g:remoteLink>
    </li>
    <li>
        <g:link action="list">
            Admin
        </g:link>
    </li>
</ul>
<div id="quote">
    <q>${quote.content}</q>
    <p>${quote.author}</p>
</div>
</body>
</html>



Код из контроллера:


[Код (открыть)]
    def ajaxRandom = {
        def randomQuote = quoteService.getRandomQuote()
        render "<q>${randomQuote.content}</q>" +
                "<p>${randomQuote.author}</p>"
    }



Когда я вызываю метод ajaxRandom из контроллера, вместо обновления контента <div id="quote">, всё это дело
рендерится на отдельную страницу. Возможно информацияв книге устарела и надо делать как-то по-другому, не решений 
не нашёл.
Происходит следующие:

 


Спасибо за внимание!

Grails 2+, Windows 7, на mac os X тоже пробовал, та же история.
Thursday, November 10th, 2011
10:15 am
[ext_873298]
GRAILS: spring-security-core plugin and locale
Всем привет!
Решил прибегнуть к помощи студии )) тк уже второй день бьюсь безрезультатно...

Работаю над мультиязычным(интернациональным) пректом и язык (локализация) используется в качестве первого параметра URI. Кроме того, вопрос возникает при интеграции со Spring Security Core Plugin. Но об этом дальше...

Итак, URLs:

http://domain.com:8080/app/en/controller/action/id
http://domain.com:8080/app/de/controller/action/id
http://domain.com:8080/app/fr/controller/action/id

Здесь мой UrlMappings.groovy:


class UrlMappings {

static mappings = {

    name login:    "/$lang/login/$action"    { controller = 'login' }
    name logout:   "/$lang/logout/$action"   { controller = 'logout' }
    name register: "/$lang/register/$action" { controller = 'register' }

    "/$lang/$controller/$action?/$id?" {
        constraints {
        }
    }

    name index: "/$lang" { controller = 'index' }
    "/" { controller = 'index' }

    "500" { controller = 'errors' }
}
}

Здесь LanguageFilters.groovy

class LanguageFilters {

def filters = {
    languageCheck(controller: '*', action: '*') {
        before = {
            if (params.lang == null) {
                redirect controller: params.controller, action: params.action,
                         params: ['lang': request.locale.language.toString()] + params
           
}
        }
    }
}
}

Здесь Config.groovy:

grails.plugins.springsecurity.failureHandler.defaultFailureUrl = "/$lang/login/authfail?login_error=1"
grails.plugins.springsecurity.failureHandler.ajaxAuthFailUrl = "/$lang/login/authfail?ajax=true"
grails.plugins.springsecurity.successHandler.defaultTargetUrl = "/$lang"
grails.plugins.springsecurity.successHandler.ajaxSuccessUrl = "/$lang/login/ajaxSuccess"
grails.plugins.springsecurity.auth.loginFormUrl = "/$lang/login/auth"
grails.plugins.springsecurity.auth.ajaxLoginFormUrl = "/$lang/login/authAjax"
grails.plugins.springsecurity.logout.afterLogoutUrl = "/$lang"
grails.plugins.springsecurity.adh.errorPage = "/$lang/login/denied"
grails.plugins.springsecurity.adh.ajaxErrorPage = "/$lang/login/ajaxDenied"

СОбственно, вопрос. Без спринга все работает как надо, но URI's
типа /login/denied, /login/authfail и пр,
вылетают из общей схемы и не работают.
Может быть и не правильно, но решил добавить в конфиге (вверху) доп
параметр языка $lang, при этом урлы оживились, но фильтром язык не
заполняется. Ошибка:

Error 2011-11-10 08:34:17,257 ["http-bio-8080"-exec-9] ERROR i18n.ParamsAwareLocaleChangeInterceptor  - Error intercepting locale change: Locale value "[:]" contains invalid characters
Message: Locale value "[:]" contains invalid characters

В общем, танцы с бубнами не увенчались - решил обратиться к сообществу.
Как ПРАВИЛЬНО интегрировать спринг в подобного рода приложение ?
Есть у кого-либо опыт в подобных проектах ?
Заранее спасибо !

Thursday, July 7th, 2011
8:59 pm
[kefirfromperm]
Greetim.com - прототип dating'а на Grails
Greetim — это прототип сайта знакомств с оригинальным алгоритмом поиска партнеров. Написан на Grails+PostgreSQL. Подробней он описан в моем посте http://kefirfromperm.livejournal.com/328087.html

Однако сейчас у меня ни времени ни уже желания заниматься его развитием особого нет. На данный момент можно сказать что проект провалился. Однако, это полноценное работающее приложение на Grails с несколькими интересными фичами. А самое главное, что код опубликован на GitHub.

https://github.com/kefirfromperm/dating

Вы можете использовать его как учебное пособие или для построения своего приложения. А можете помочь проекту вылезть из ямы. Ну и конечно это уникальная возможность самоутвердиться, путем высмеивания чужого кода :)

зы Если кому-то понадобится код под другой лицензией, обращайтесь ко мне.
Tuesday, January 18th, 2011
11:26 am
[oneladystanding]
Фильтрация данных по параметрам - требуется помощь
Здравствуйте. У меня такая проблема....
Есть две таблицы (domain - класса) связанные соотношением mxn.
Второя класс  - некое численной значение, первый класс его параметры - месяц, год и пр. параметров нефиксированное число, поэтому пришлось завести класс, чтобы к значению можно было добавить в любой момент параметр.

class ParamValue {
    ParamType paramType
    String paramValue
 ....
 }

class IndicValue {
    Float indicValue
...
 }

Класс связки -
class IndicParam {
    ParamValue paramValue
    IndicValue indicValue
....
}

Есть некий список параметров, выбранный пользователем - paramList <ParamValue>
Нужно выбрать такие показатели IndicValue,  у которых есть ВСЕ параметры paramValue из paramList.

Как это сделать правильно ?

Рассматривала вариант создания хранимой процедуры (база MySQL). Насколько я разобралась, там нельзя передавать в процедуру неопределенной кол-во параметров (список) и получать, опять же,  список значений на выходе (хотела использовать типы set или enum или еще что то в этом роде).

Помогите советом

Current Mood: upset
Tuesday, January 4th, 2011
9:16 pm
[jonny81]
Организация subdomain
Давайте поговорим о том, как лучше реализовать поддомены в одном проекте на Grails.


1) Хочется что-то вроде:

  а) в debug режиме иметь ссылки
    localhost:8080/sub1/controller/action
    localhost:8080/sub2/controller/action

  б) в релиз режиме иметь ссылки
    sub1.domain.com/controller/action
    sub2.domain.com/controller/action

Сделать работу таких ссылок через UrlMappings проблем нет. Есть проблема как нормально генерировать такие ссылки использую стандартный (g:link controller="" action="") и прочие теги.

2) Т.к. имена контроллеров обязательно должны быть разные, то я планирую в их названии использовать префикс поддомена. Будет, например, два контроллера Sub1AdminController и Sub2AdminController.
Хочется, чтобы в ссылках эти префиксы были убраны (и при использовании g:link тоже):

Нехочется, ненравится:
localhost:8080/sub1/sub1Admin/
localhost:8080/sub2/sub2Admin/

Хочется, нравится:
localhost:8080/sub1/admin/
localhost:8080/sub2/admin/

Т.е. опять получается, что обработку таких "правильных" ссылок я могу сделать через UrlMappings:
class UrlMappings {
	static mappings = {
		"/$project/$pController/$action?/$id?" {
			controller = {"${params.project}${params.pController}"}
		}
	}
}

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

--

Возможно кто-то уже сталкивался с этой проблемой. Или есть какие-то идеи. Пишите.
Saturday, November 27th, 2010
12:47 am
[itserg2008]
Thursday, September 30th, 2010
12:13 pm
[jonny81]
пакетное удаление
Добрый день,

Сейчас пакетное удаление реализуется следующим образом:
def results = Domain.withCriteria {
    // здесь какие-либо критерии
}

Domain.withTransaction {
    results.each {
        it.delete();
    }
}


Возможно этот код объединить в Grails как-то? Чтобы удаление без выборки происходило (без использования HQL с execute) ?
4:23 am
[drpadawan]
Экспериментирую с GSP TagLib.

Хочется сделать Tag. На выходе для этого Tag'a генерируется Html. Однако хотелось бы иметь возможность пробежаться по внутренним gsp-узлам перед генерацией. Не знаю как это сделать, а в документации довольно тривиальные вещи - http://grails.org/Dynamic%20Tag%20Libraries. Максимум рассказывается про доступ к внутренним узлам через Closure, чего мне недостаточно (или я ошибаюсь?).
Friday, July 23rd, 2010
12:44 pm
[jonny81]
Optimistic Locking
Помогите разобраться с оптимистичными блокировками.

Простая модель для тестирования:
class Registration
{
	Date dateRequest;
}

в таблице есть одна запись с id = 1

Read more...Collapse )
Thursday, July 15th, 2010
10:27 pm
[jonny81]
Юнит тестирование контроллера
Пытаюсь разобраться с тестами контроллеров.
Сделал как в примере petclinic. Тесты отваливаются с NullPointerException в GrailsDomainConfigurationUtil.class на строке
boolean hasHibernate = PluginManagerHolder.getPluginManager().hasGrailsPlugin("hibernate");

Попытался запустить тесты из примера Perclinic (grails test-app). Два теста завершаются с ошибкой NullPointerException.

Read more...Collapse )
Wednesday, July 7th, 2010
4:11 pm
[monzdrpower]
Господа, есть нужда прочитать файл RTF.
Есть мнение, что на groovy это сделать будет проще чем на java.
Если это не так - скажите =) и киньте полезными ссылками, если у кого есть ..
спасибо.
4:25 pm
[drpadawan]
Grails Criteria Builder: кэширование Criteria
Здравствуйте,

Можно ли кэшировать экземпляры класса Criteria, которые создаются с помощью DSL Criteria Builder?

Например, я могу кэшировать так, но без Builder'a:

def criteria = MyDomainObj.createCriteria()
criteria.add(Restrictions.'in'(domainClass.identifier.name, idsList))
Thursday, June 17th, 2010
5:09 pm
[jonny81]
интерфейс GrailsClass
 Добрый день,

Помогите разобраться. 

В Grails все классы должны реализовывать  интерфейс GrailsClass. Конкретно меня интересуют методы getFullName(), getPackageName(), getShortName() и др. подобные.

Я создаю новый объект класса User (класс-домен) и пытаюсь вызвать метод getShortName(). Программа падает с сообщением:
groovy.lang.MissingMethodException: 
No signature of method: static User.getShortName() is
 applicable for argument types: () values: []


Код разумеется простой:
def domain = new User(firstName: 'Andrey', lastName:'Rychkov');
println domain.getShortName();


Я в расстерянности....
Tuesday, June 1st, 2010
4:00 pm
[drpadawan]
Reusing controllers in Grails
В ходе изучения Grails возник еще один вопрос.

Теоретически, парадигма MVC должна позволять создание нескольких представлений одной модели.

Вопрос №1 Как этого добиться в Grails?

Конкретно, мне не нравится что представление зависит от поведения. Это когда в контроллерах присутствуют ссылки на конкретные представления.

Вопрос №2 Как лучше избежать такой зависимости?
Monday, May 24th, 2010
7:55 pm
[drpadawan]
Вопросы про actions и связанные объекты
Здравствуйте,

Вопрос №1

Есть ли хороший способ узнать предыдущую action? Ситуация: есть chain из таких акций:
a) startProcess,
b) action1,
c) action2.
Т.е. startProcess запускает chain из action1, action2.

В конце action2, хочется вернуться туда откуда всё началось, то есть туда откуда стартанул startProcess.

Сам chain не предоставляет такой возможности. Поэтому я решил через модель передавать название контроллера и акции чтобы потом сделать редирект. Только увы - не понятно как определить исходный action. Свойство actionName, даже через перехватчик, всегда установлено на startProcess.

Через request не хочется передавать, т.к. это потенциальная дыра.

Вопрос №2

Есть 2 доменных класса, связанных между собой 1-к-1. Один из них владелец (hasOne), другой - принадлежащий (belongsTo). Есть также ограничения в обоих классах на то, что связь должна быть не-null. Вроде бы вполне логичное ограничение, когда объект не может существовать без другого.

Дефолтный scaffolding не позволяет никак работать с такой моделью, потому что не может по-отдельности создать объекты из-за ограничений. Конечно, можно забыть про дефолтный скафолдинг и про вид, который нагенерирует сам grails, и писать свой вид и контроллер - в которых связываются и редактируются сразу два объекта.

Другая ситуация - это иметь раздельные контроллеры и виды, но переключаться через chain, и сохранять объекты каскадно в контроллере класса-владельца (т.к. объект класса-потомка сохранять нельзя, ведь владелец может к этому моменту еще не быть в базе).

Как вообще быть? Неужели никто не задумывался над редактированием разветвленной модели?
Friday, May 21st, 2010
9:20 pm
[jonny81]
domain, mapping
Пытаюсь разобраться с моделями и БД. Таблицы создаются автоматически на основе класса модели. Использую MySql/InnoDB. 

Помогите с решением вопросов:

1) Что нужно указать в классе, чтобы создавалось поле INT(10) UNSIGNED? Т.е. хочу сделать беззнаковое поле.

2) Хочу сделать поле типа LONGBLOB. Модель следующая:
class MailAttachment
{
Byte[] file;

static constraints = {
file(maxSize: 16777216);
}

}
Grails упорно создает в базе данных поле file типа TINYBLOB. Значения maxSize пробывал вплоть до 2^31.

3) Хочу указать модели, что бы использовалось каскадное удаление. Сейчас код выглядит следующим образом:
class Mail
{
static hasMany = [attachments:MailAttachment]

static mapping = {
attachments(cascade: 'all');
}
}

class MailAttachment
{
Mail mail;

static belongsTo = Mail;
}


не работает... т.е. при удалении (вручную) записи из таблицы 'mail' СУБД ругается, что имеются связанные записи в таблице mail_attachment. Ну и в phpmyadmin если связи посмотреть у таблицы mail_attachment, то на удаление там пустое значение стоит, а должно быть CASCADE...

p.s. grails 1.3.1
Wednesday, May 19th, 2010
10:07 pm
[jonny81]
наследование замыканий
 Не могу понять как вызвать замыкание родительского класса.

Есть контроллер:

Read more...Collapse )
Friday, May 14th, 2010
5:26 pm
[zlo_in_motion]
Grails и Flash
Господа, подскажите пожалуйста, как заставить работать swf файл в GSP?
swf имеет ряд внешних файлов (xml-конфигурация и набор картинок).
Поставил плагин flash-player, использую такую вставку:
<g:flashPlayer id="test"
                       varFile="${resource(dir: 'flash', file: 'photowidget.swf')}" paramAllowScriptAccess="always" flashvars="feed=${resource(dir:'flash',file:'photowidget.xml')}"/>

все файлы находятся в подпапке проекта flash, на странице плеер отображается, но не подгружаются ресурсы.
Tuesday, May 4th, 2010
5:46 pm
[itserg2008]
Новый сайт на платформе grails - develosaur.ru
Мы открыли новое сообщество разработчиков программного обеспечения - develosaur.ru
Приглашаем авторов статей по grails и groovy принять участие в  развитии сообщества и популяризации стека технологий, основанных на  java/groovy!

Сайт написан полностью на платформе grails.
Архитектура системы: ОС Ubuntu Server + Apache Web Server + Apache Tomcat + MySQL + Grails 1.2.2
Wednesday, April 7th, 2010
5:56 pm
[myalfresco]
Grails и русские символы
Всем привет

Пишу небольшое приложение - возникла проблема с кодировками.

Есть форма payWP.gsp

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="layout" content="main">

<g:form method="post">
<input type="hidden" name="id" value="${di?.id}" />
<g:if test="${nickIsOk}">
<input type="text" name="nick" value="${params.nick}" readonly="readonly" />
</g:if>
<g:if test="${!nickIsOk}">
<input type="text" name="nick" value="${params.nick} />


Ввожу русское название нажимаю на кнопку - в контроллере делается POST запрос к другому сервлету и затем делается redirect на эту же страницу: redirect(view : "payWP", params:[id: params.id, nick: params.nick, res:res])

В итоге в поле nick образуется абракадабра вида:Тест
А url выглядит как ../payWP/43?...&nick=Тест&res=-7

Все исходники в UTF-8
Среда исполнения Tomcat/Linux, Grails 1.2.1, jdk 1.5

Для запуска Tomcat и для компиляции grails использую -Dfile.encoding=UTF-8

Не пойму в чем дело. Никто с таким не сталкивался?




[ << Previous 20 ]
Официальный сайт Grails   About LiveJournal.com