在对象实例化期间有没有办法让groovy忽略地图中的额外属性?例:
class Banana{
String name
}
def params = [name:'someGuy', age:13]
new Banana(params)
Run Code Online (Sandbox Code Playgroud)
在这个例子中,groovy抛出一个没有这样的属性:年龄异常(显然因为在香蕉类中没有定义年龄.没有手段只将地图中所需的属性映射到Banana类的构造函数,有没有办法告诉香蕉忽略额外的属性?
我注意到Grails域类没有遇到这个问题,我想在这里做同样的行为!
感谢您的帮助和建议!
当我从控制器渲染视图时,传递给视图的变量位于视图中呈现的所有模板的范围内,包括嵌套在多个深层的模板.
但是,当我从控制器渲染模板时(如在ajax样式中),只有初始模板似乎可以访问变量,并且嵌套模板调用不共享此信息.例:
Views & Templates:
a.gsp
_b.gsp
_c.gsp
_one.gsp
_two.gsp
_three.gsp
//PasserController.groovy
class PasserController{
def v = {
render(view:"a", model:[time:System.currentTimeMillis()])
}
def t = {
render(template:"one", model:[time:System.currentTimeMillis()])
}
}
//a.gsp
A Time is: ${time}<br />
<g:render template="b" />
//_b.gsp
B Time is: ${time}<br />
<g:render template="c" />
//_c.gsp
C Time is: ${time}<br />
//_one.gsp
One Time is: ${time}<br />
<g:render template="two" />
//_two.gsp
Two Time is: ${time}<br />
<g:render template="three" />
//_three.gsp
Three Time is: ${time}<br />
Run Code Online (Sandbox Code Playgroud)
输出如下:
For passer/v …
Run Code Online (Sandbox Code Playgroud) 似乎无法找到关于此的信息,如果你有一些,请指向正确的主题/帖子/链接!
我有一个服务,让我们说它叫做'SomeServiceWithAReallyLongNameICannotChange'.当然,使用服务的正常方法是允许grails使用typless或typed表示法注入它们:
class SomeClass{
//...
def someServiceWithAReallyLongNameICannotChange
//...
}
Run Code Online (Sandbox Code Playgroud)
- 要么 -
class SomeClass{
//...
SomeServiceWithAReallyLongNameICannotChange someServiceWithAReallyLongNameICannotChange
//...
}
Run Code Online (Sandbox Code Playgroud)
我想要做的是将服务重命名为更短的内容,但仅限于我正在使用它的地方,因为我无法更改实际服务的名称.我尝试使用'as'表示法,就像使用import一样,我尝试在类型化声明中更改名称,但这些东西似乎都不起作用.这可能吗?
我试过这样的事情:
class SomeClass{
//...
def someServiceWithAReallyLongNameICannotChange as SS
//and I tried
def SomeServiceWithAReallyLongNameICannotChange SS
//no joy
//...
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
这里有点麻烦.我试图运行一个片段,如:
println 'echo $PATH'.execute().getText()
Run Code Online (Sandbox Code Playgroud)
我期望得到系统$ PATH变量的内容.但是,我改为:
$PATH
Run Code Online (Sandbox Code Playgroud)
我的猜测是$被转义,因此没有被bash评估.我也尝试了命令构建器语法,结果相同.有什么建议?
grails ×2
groovy ×2
attributes ×1
bash ×1
constructor ×1
controller ×1
ignore ×1
map ×1
service ×1
shell ×1
variables ×1
view ×1