在python中,我可以执行以下操作:
keys = [1, 2, 3]
values = ['a', 'b', 'c']
d = dict(zip(keys, values))
assert d == {1: 'a', 2: 'b', 3: 'c'}
Run Code Online (Sandbox Code Playgroud)
有没有一种很好的方法来构建一个groovy中的地图,从一个键列表和一个值列表开始?
在Groovy中是否有一种方法可以在实例化类时向构造函数添加代码?我有一个Groovy类(但我无法修改这个特定的源代码),但我希望有一种方法可以注入代码(可能通过元类),所以我的代码作为构造函数的一部分运行(在此case只有一个,默认构造函数).
谢谢,杰夫
我最近将Grails应用程序更新为2.1.0,但是当我war在项目中时出现以下错误:
java.lang.NoClassDefFoundError:org/codehaus/groovy/transform/powerassert/ValueRecorder
这两个版本兼容吗?
我对网络不是很了解,但这是我的问题:我需要从AWS lambda函数连接到MySQL服务器,这是防火墙后面的,并且要"白色"我的AWS lambda我需要知道它使用的是什么IP.
据我了解,它取决于VPC子网.是不是,如果我的VPC子网CIDR是172.31.16.0/20,IP可能会从172.31.16.0变化到172.31.16.254?
我正在尝试使云形成模板上的 AutoScalingGroup 名称动态化。我在想这是否可以通过参数或任何其他方式实现?
"DynamicASGName": {
"Type": "AWS::AutoScaling::AutoScalingGroup",
"Properties": {
...properties here...
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个像这样的控制器方法:
def search = {
def query = params.query
...
render results as JSON
}
Run Code Online (Sandbox Code Playgroud)
我如何对此进行单元测试?具体来说,我如何调用搜索来设置params.query,以及如何测试方法的结果render?有没有办法模拟渲染方法呢?
我正在用Groovy编写一个脚本,我希望有人能够通过运行来执行它./myscript.groovy.但是,这个脚本需要第三方库(MySQL JDBC),我不知道有什么方法可以通过一个-classpath或者-cp参数来提供脚本,例如
`./monitor-vouchers.groovy -cp /path/to/mysql-lib.jar`
Run Code Online (Sandbox Code Playgroud)
由于我不会进入这里的原因,实际上不可能使用-classpath/-cp参数向脚本提供JAR位置.有什么方法可以从脚本本身加载JAR吗?我试过用@Grab
import groovy.sql.Sql
@Grab(group='mysql', module='mysql-connector-java', version='5.1.19')
def getConnection() {
def dbUrl = 'jdbc:mysql://database1.c5vveqm7rqgx.eu-west-1.rds.amazonaws.com:3306/vouchers_prod'
def dbUser = 'pucaroot'
def dbPassword = 'password'
def driverClass = "com.mysql.jdbc.Driver"
return Sql.newInstance(dbUrl, dbUser, dbPassword, driverClass)
}
getConnection().class
Run Code Online (Sandbox Code Playgroud)
但这会导致以下错误:
Caught: java.sql.SQLException: No suitable driver
java.sql.SQLException: No suitable driver
at monitor-vouchers.getConnection(monitor-vouchers.groovy:13)
at monitor-vouchers.run(monitor-vouchers.groovy:17)
Run Code Online (Sandbox Code Playgroud)
有没有办法可以使用just执行这个脚本 ./monitor-vouchers.groovy
我有index.gsp一个页面.在该页面中有一个注册按钮和一个登录按钮.一旦您登录,如果登录正常,该应用程序将再次驱动您index.gsp.我需要,如果用户登录,这些按钮会消失,而是说"你好,[用户名]".我已尝试使用此代码,但它不起作用(它从未登录):
在控制器中:
def dologin(){
def user=Usuario.findByUsernameAndPassword(params.username,springSecurityService.encodePassword(params.password) )
if(user){
redirect (controller:'usuario', action:'index')
}else{
flash.message=message(code:'default.user.not.found', args:[message(code: 'params.username', default:'Usuario'), params.id])
def userlogged = springSecurityService.getCurrentUser()
render view: 'index', model: [user: user]
}
}
Run Code Online (Sandbox Code Playgroud)
在index.gsp中(不完整,只有重要的部分):
<sec:ifNotLoggedIn>
<div id="buttons">
<div id="login"><a href="loginurl">Login</a>
</div>
<div id="register"><a href="registerurl">Registrarse</a>
</div>
</div>
</sec:ifNotLoggedIn>
<sec:ifLoggedIn>
<div id="greet">Hello!</div>
</sec:ifLoggedIn>
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.
谢谢.
我有域"country",在list.gsp上我有搜索块和输入字段.第一个问题是,当我尝试在我的列表上使用paginate时总是显示所有结果,在这种情况下我设置了解决方案并且我只发送了10个值用于显示(如果你知道另一个解决方案请告诉我).我的搜索看起来像这样
def search = {
if(query){
def srchResults = searchableService.search(query, params)
def result = Country.executeQuery("select new map(a.name as name, a.datacenter as datacenter) from Country a where a.name like '%"+ params.q + "%'")
if (params.offset)
{
x = params.offset.toInteger()
y = Math.min(params.offset.toInteger()+9, result.size()-1)
} else
{
x = 0
size = result.size() - 1
y = Math.min(size, 9)
}
def q=params.q
[countryInstanceList: result.getAt(x .. y), countryInstanceTotal:result.size(), q:params.q]
}else{
redirect(action: "list")
}
}
Run Code Online (Sandbox Code Playgroud)
现在我有另一个问题,当我按下一页然后我的搜索字段中的参数是清理,结果为空.我试图将字段值作为参数发送,但我做错了.
我的搜索页面如下:
<g:form action="search">
<div class="search" >
Search Country …Run Code Online (Sandbox Code Playgroud) groovy ×6
grails ×5
aws-lambda ×1
bamboo ×1
classpath ×1
controller ×1
dictionary ×1
grails-2.1 ×1
groovy++ ×1
gsp ×1
metaclass ×1
mysql ×1
networking ×1
pagination ×1
python ×1
testing ×1
unit-testing ×1