groovy中map取值问题
我输出map得到的是
[enterprisecode:xx, usercode:xx, username:xx, password:xx, defaultgroupid:xx, phonenumber:null, languagecode:CN, erpenterprisecode:null, erpusercode:null, year:2010, month:201012, today:2010/12/06]
但我用map.get("languagecode") 和 map.usercode得到的都是null,请问是什么情况
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
groovy写的代码没这么长的,你现在是用java的方式。还有groovy操作sql,也没这么烦,我的代码分享里有例子。
能不能说明白点使用groovy取值吗? 不过我看你的代码像是java的
fieldValue 会处理 errors , 如果是后台来的数据,不是处理后的提交数据的话,一般用 ${} 显示值。
得到的值如果使用${subsysInstance.subsysName}显示的话正确,可以显示数据库里面的值,但是使用${fieldValue(bean: subsysInstance, field: 'subsysName')}的时候报页面错误:
Error processing GroovyPageView: Error executing tag <g:link>: Error evaluating expression [fieldValue(bean: subsysInstance, field: 'subsysName')] on line [23]: Cannot invoke method hasProperty() on null object at D:/groovy/mobile/grails-app/views/subsys/showSubsys.gsp:23。 请高手指教
把从数据库中取到的值放入map中,添加到list中
def search = {sql,map ->
def conn = dataSource.getConnection()
PreparedStatement ps = conn.prepareStatement(sql)
ResultSet rs = ps.executeQuery()
if(lists.size() > 0){
lists = []
}
if(var.size() > 0){
var = [:]
}
while(rs.next()){
for(i in 0..map.size()-1){
var.put("${map.get(i)}","${rs.getString("${map.get(i)}")}")
}
lists.add(var)
}
if(rs!=null){
rs.close()
}
ps.clearParameters()
conn.close()
return lists
}
取值:
lists = new SQLManagerController().search(sql,map)
if(lists.size()>0){
var = lists.get(0)
session.user = var
redirect(controller:"subsys",action: "showSubsys" )
}
这里的session.user 和 var 都能输出我开始贴出的键值对
[enterprisecode:xx, usercode:xx, username:xx, password:xx, defaultgroupid:xx, phonenumber:null, languagecode:CN, erpenterprisecode:null, erpusercode:null, year:2010, month:201012, today:2010/12/06]
从哪出来的数据?
我自己定义的map类型[usercode:'xx']都能用map.usercode显示出来,这个是不明白
自己先顶下,请高手解决