我目前正在开发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应用程序,我正在寻找页面上的选择列表,并将其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) 我正在尝试为我已经工作了一段时间的项目设置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 /
我想我原本可能在旧操作系统的App_V3文件夹中设置了Git,但不知道为什么它仍然指向该目录,因为我已经运行下面的代码重新初始化它:
rm -rf .git
git init
Run Code Online (Sandbox Code Playgroud)
有人可以帮助我,因为它非常令人沮丧:S
提前致谢
我正在开发一个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) 我一直在整理一个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) 我目前正在Grails开发一个Web应用程序,我正在寻找一种方法来隐藏基于登录到解决方案的当前用户的菜单.
为了给你一些背景知识,这就是我的设置
我知道如何限制控制器只允许有权访问的用户查看它但我现在要限制看到下面的菜单,除非正确的用户登录,我该怎么办呢?它是否与从控制器渲染该元素有关?
<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应用程序,并且我有一个附加到帐户的地址列表.基本上我想要做的是当编辑帐户时显示所有附加地址的当前列表,然后我可以从视图中删除/添加任意多个.当捕获到这些数据时,它会被控制器拾取,我想要做的是能够清除该帐户中的所有当前地址,然后再次使用视图中存在的内容创建列表,我的代码如下:
帐户域名:
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) 我有一个对象从视图传递给控制器,它包含我需要删除的双空格.我已经走下标准路径并使用正确的功能尝试删除这些双空格但它不起作用.该字符串在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)
这也不起作用,有没有人有任何想法,因为我真的不明白我能做些什么来删除这些双重空间?
提前致谢
我有一个 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 ×6
grails-orm ×2
deprecated ×1
domain-model ×1
git ×1
git-add ×1
jackson ×1
java ×1
json ×1
key ×1
key-value ×1
linux ×1
pojo ×1
replace ×1
repository ×1
save ×1
sed ×1
selectlist ×1
string ×1
strip ×1
upgrade ×1
whitespace ×1