小编use*_*858的帖子

Grails - 在刷新grails之前保存瞬态实例错误?

我目前正在开发Grails应用程序,我正在使用Spring Security和UI插件.我创建了User Class和我所拥有的另一个Area Class之间的关系,如下所示:

用户类:

class User {

    transient springSecurityService

    String username
    String email
    String password
    boolean enabled
    boolean accountExpired
    boolean accountLocked
    boolean passwordExpired

    static belongsTo = [area:Areas]

        .......
}
Run Code Online (Sandbox Code Playgroud)

地区分类:

class Areas {

    String name

    static hasMany = [users:User]

}
Run Code Online (Sandbox Code Playgroud)

从类中可以看出,一个用户可以链接到一个区域,但一个区域可能有很多用户.这一切都很好,当我引导应用程序时,所有数据都正确添加.但是,当我尝试使用表单来创建新用户时,我收到以下错误:

object references an unsaved transient instance - save the transient instance before flushing: com.website.Area
Run Code Online (Sandbox Code Playgroud)

下面是我用来保存信息的控制器代码:

def save = {    
        def user = lookupUserClass().newInstance(params)

        if (params.password) {
            String salt = saltSource instanceof NullSaltSource ? null : params.username
            user.password = …
Run Code Online (Sandbox Code Playgroud)

grails save grails-orm domain-model

6
推荐指数
1
解决办法
7200
查看次数

在Grails选择列表上设置选项键和值?

我目前正在处理Grails应用程序,我正在寻找页面上的选择列表,并将其Key设置为一个值,将Value设置为另一个值.所有相关元素的代码如下:

域对象:

class Cars {
  String carType
  String car
}
Run Code Online (Sandbox Code Playgroud)

控制器:

def create() {
  List cars = Cars.list()
  [dealerInstance: new Dealer(params), cars: cars]
  render(text:"This site in curently under Maintainence!")
}
Run Code Online (Sandbox Code Playgroud)

视图:

<g:select name="cars.id" from="${cars}" optionKey="${carType}" optionValue="${car}"/>
Run Code Online (Sandbox Code Playgroud)

现在,当我运行此代码时,列表确实已填充,但数据如下所示:

<select id="cars.id" name="cars.id">
  <option value="com.app.Cars : 1">com.app.Cars : 1</option>
  <option value="com.app.Cars : 2">com.app.Cars : 2</option>
  <option value="com.app.Cars : 3">com.app.Cars : 3</option>
</select>
Run Code Online (Sandbox Code Playgroud)

然后当我尝试这个:

视图:

<g:select name="cars.id" from="${cars.car}" optionKey="${carType}" optionValue="${car}"/>
Run Code Online (Sandbox Code Playgroud)

我得到以下内容:

<select id="cars.id" name="cars.id">
  <option value="Audi">Audi</option>
  <option value="BMW">BMW</option>
  <option value="Scoda">Scoda</option>
</select>
Run Code Online (Sandbox Code Playgroud)

这不是我想要的,我希望能够在此选择列表上设置不同的键值对,以便我可以在我的应用程序中使用该数据,我希望生成以下内容:

<select id="cars.id" …
Run Code Online (Sandbox Code Playgroud)

grails key key-value selectlist

5
推荐指数
1
解决办法
2万
查看次数

'git add.' 不起作用

我正在尝试为我已经工作了一段时间的项目设置Git.我记得很久以前设置Git但从未出于各种原因使用过它.现在我想使用它我得到一个奇怪的问题,我认为这与旧安装有关.

为了重新开始,我安装了一个新的Ubuntu操作系统,这样就不会有Git安装,我复制了项目(Grails).然后我导航到该目录并运行以下命令:

git init

git remote add origin https://USERNAME@bitbucket.org/USERNAME/APPNAME.git
Run Code Online (Sandbox Code Playgroud)

然后我跑了:

git add .
Run Code Online (Sandbox Code Playgroud)

这是我得到以下错误的地方:

fatal: Not a git repository: /home/user/workspace/App_V3/.git/modules/plugins/grails-spring-security-ui
Run Code Online (Sandbox Code Playgroud)

这个错误很奇怪,因为它甚至不匹配我所在的目录,因为目录如下:

/ home/user中/工作区/ App_V7 /

我想我原本可能在旧操作系统的Ap​​p_V3文件夹中设置了Git,但不知道为什么它仍然指向该目录,因为我已经运行下面的代码重新初始化它:

rm -rf .git
git init
Run Code Online (Sandbox Code Playgroud)

有人可以帮助我,因为它非常令人沮丧:S

提前致谢

git repository git-add

5
推荐指数
2
解决办法
4622
查看次数

使用Jackson Mapper将JSON数据映射到Java POJO类

我正在开发一个Android应用程序,我正在尝试使用Jackson的Stream功能实现一些Java数据的处理.为了做到这一点,我有一些代码示例来贯穿并将解释每个人做什么.

这是我正在使用的JSON:

{
"users": [
    {
        "ID": "26",
        "data1": "Momonth",
        "data2": "2011-10-30 04:34:53"
    },
    {
        "ID": "45",
        "data1": "Porto",
        "data2": "2011-10-18 05:34:00"
    },
    {
        "ID": "21",
        "data1": "Tomson",
        "data2": "2011-10-12 02:44:13"
    }
],
"success": 1,
}
Run Code Online (Sandbox Code Playgroud)

下面的代码是POJO,当数据遍历我的数据中的每个"users"数组列表项时,将存储这些数据:

@JsonRootName(value = "users")
public class User {

    String ID;
    String data1;
    String data2;
    ...

    public String getID() {
        return ID;
    }
    public void setID(String iD) {
        ID = iD;
    }
    public String getData1() {
        return data1;
    }
    public void setData1(String data1) {
        this.data1 …
Run Code Online (Sandbox Code Playgroud)

java json pojo jackson deserialization

5
推荐指数
1
解决办法
3万
查看次数

Bash脚本中的Linux SED命令从字符串中删除

我一直在整理一个bash脚本,在其中我需要用一些必要的信息来更新文件.我正在使用的命令如下:

sudo sed '
/end/ a\
First line to update\
  param 1 'var1'\
  param 2 'var2'\
  param 3 'var3'\
  param 4 'var4'\
end\
' TestFile >TestFileNew
Run Code Online (Sandbox Code Playgroud)

现在这应该用数据更新文件,应该如下所示:

end
First line to update
  param 1 'var1'
  param 2 'var2'
  param 3 'var3'
  param 4 'var4'
end
Run Code Online (Sandbox Code Playgroud)

文件确实已经创建并且数据在其中但是它似乎从文本中剥离了'符号而我不希望发生这种情况,有人可以帮忙吗?实际生产的一个例子如下:

end
First line to update
  param 1 var1
  param 2 var2
  param 3 var3
  param 4 var4
end
Run Code Online (Sandbox Code Playgroud)

linux sed strip

4
推荐指数
1
解决办法
1292
查看次数

根据用户角色隐藏内容?

我目前正在Grails开发一个Web应用程序,我正在寻找一种方法来隐藏基于登录到解决方案的当前用户的菜单.

为了给你一些背景知识,这就是我的设置

  1. 具有映射的用户模型和角色模型的Web应用程序
  2. 根据用户访问限制某些控制器的登录功能.
  3. 我有每个页面上显示的菜单.

我知道如何限制控制器只允许有权访问的用户查看它但我现在要限制看到下面的菜单,除非正确的用户登录,我该怎么办呢?它是否与从控制器渲染该元素有关?

<div class="nav">
  <ul class"nav">
    <li>
      <g:link class="Tester" controller="Testing" action="test">
        <g:message code="Tester" args"[entityName]" />
      </g:link>
    </li>
    <li>
      <g:link class="Tester2" controller="Testing" action="test2">
        <g:message code="Tester2" args"[entityName]" />
      </g:link>
    </li>
  </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

grails spring-security

4
推荐指数
2
解决办法
2734
查看次数

Grails clear hasMany条目并添加新的错误?

我目前正在处理grails应用程序,并且我有一个附加到帐户的地址列表.基本上我想要做的是当编辑帐户时显示所有附加地址的当前列表,然后我可以从视图中删除/添加任意多个.当捕获到这些数据时,它会被控制器拾取,我想要做的是能够清除该帐户中的所有当前地址,然后再次使用视图中存在的内容创建列表,我的代码如下:

帐户域名:

class Account {

    String name
    Date dateCreated
    Date lastUpdated

    static hasMany = [addresses:Addresses]

    static mapping = {
        addresses cascade:"all-delete-orphan"
    }

    def getAddressesList() {
        return LazyList.decorate(
              addresses,
              FactoryUtils.instantiateFactory(Addresses.class))
    }

    static constraints = {
        name(blank:false, unique: true)
    }

}
Run Code Online (Sandbox Code Playgroud)

地址域:

class Addresses {

    int indexVal
    String firstLine
    String postcode
    String area

    static belongsTo = [account:Account]

    static mapping = {
    }

    static transients = [ 'deleted' ]

    static constraints = {
        indexVal(blank:false, min:0)
    }


}
Run Code Online (Sandbox Code Playgroud)

账户管理员:

def update() {

    def accountInstance …
Run Code Online (Sandbox Code Playgroud)

grails grails-orm

3
推荐指数
1
解决办法
6627
查看次数

Grails字符串替换不起作用?

我有一个对象从视图传递给控制器​​,它包含我需要删除的双空格.我已经走下标准路径并使用正确的功能尝试删除这些双空格但它不起作用.该字符串在from和then之间也有一个空格,我设法用.trim()删除.

下面是我以前尝试和替换所有双空格:

object = params.objectValue.trim()
object.replaceAll("  ", " ")
Run Code Online (Sandbox Code Playgroud)

这没用,仍然有空格,所以我尝试了这个:

newObj = ""
object = params.objectValue.trim()
newObj = object
newObj.toString().replace("  ", " ")
Run Code Online (Sandbox Code Playgroud)

这是一个字符串文本的示例:

"the person drove the car on  21/12/04 at  12:00"
Run Code Online (Sandbox Code Playgroud)

这也不起作用,有没有人有任何想法,因为我真的不明白我能做些什么来删除这些双重空间?

提前致谢

string grails whitespace replace

2
推荐指数
1
解决办法
4615
查看次数

Spring Security Core Plugin 2.0-RC2 升级问题?

我有一个 grails 项目,我刚刚将 Spring Security Core 插件升级到最新版本,但是在尝试运行该应用程序时收到以下消息:

| Error Compilation error: startup failed:
Compile error during compilation with javac.
/home/dev/.grails/2.1.0/projects/app/plugins/spring-security-ldap-1.0.6/src/java/org/codehaus/groovy/grails/plugins/springsecurity/ldap/DatabaseOnlyLdapAuthoritiesPopulator.java:20: cannot find symbol
symbol  : class GrailsUserDetailsService
location: package org.codehaus.groovy.grails.plugins.springsecurity
import org.codehaus.groovy.grails.plugins.springsecurity.GrailsUserDetailsService;
                                                        ^
/home/dev/.grails/2.1.0/projects/app/plugins/spring-security-ldap-1.0.6/src/java/org/codehaus/groovy/grails/plugins/springsecurity/ldap/DatabaseOnlyLdapAuthoritiesPopulator.java:37: cannot find symbol
symbol  : class GrailsUserDetailsService
location: class org.codehaus.groovy.grails.plugins.springsecurity.ldap.DatabaseOnlyLdapAuthoritiesPopulator
    private GrailsUserDetailsService _userDetailsService;
            ^
/home/dev/.grails/2.1.0/projects/app/plugins/spring-security-ldap-1.0.6/src/java/org/codehaus/groovy/grails/plugins/springsecurity/ldap/DatabaseOnlyLdapAuthoritiesPopulator.java:71: cannot find symbol
symbol  : class GrailsUserDetailsService
location: class org.codehaus.groovy.grails.plugins.springsecurity.ldap.DatabaseOnlyLdapAuthoritiesPopulator
    public void setUserDetailsService(final GrailsUserDetailsService service) {
                                            ^
/home/dev/.grails/2.1.0/projects/app/plugins/spring-security-ldap-1.0.6/src/java/org/codehaus/groovy/grails/plugins/springsecurity/ldap/GrailsLdapAuthoritiesPopulator.java:20: cannot find symbol
symbol  : class GrailsUserDetailsService
location: package org.codehaus.groovy.grails.plugins.springsecurity
import org.codehaus.groovy.grails.plugins.springsecurity.GrailsUserDetailsService;
                                                        ^ …
Run Code Online (Sandbox Code Playgroud)

grails upgrade spring-security deprecated

2
推荐指数
1
解决办法
3614
查看次数