小编Jör*_*yer的帖子

如何在grails域类中调整Map的约束/数据库映射

关注grails域类:

class MyClass {
  Map myMap
}
Run Code Online (Sandbox Code Playgroud)

现在,对于myMap,grails会自动为地图中的元素创建一个新表.但是,如果我添加太长的元素(例如1024个字符),我会收到DB错误.

我可以以某种方式告诉grails使myMap表中的相应列足够大以允许更大的字符串,或者我是否必须在数据库中手动执行此操作?

我已经试过了

static constraints = {
  myMap(maxSize:1024)
}
Run Code Online (Sandbox Code Playgroud)

哪个不起作用(正如预期的那样,因为maxSize应该引用Map的值而不是Map本身).

如果不是通过约束,也许有办法通过约束

static mapping { ... }
Run Code Online (Sandbox Code Playgroud)

database mapping grails hibernate-mapping grails-domain-class

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

如何配置grails以始终在状态500上显示自己的错误页面

UrlMappings.groovy,我已设置,"500"(controller:'error', action:'error')以便使用我自己的错误控制器(和视图).

它通常有效,但是当我尝试篡改请求输入(提交1MB大小的参数)时,我得到了一个Tomcat生成的错误页面,其中包含HTTP状态500.

首先我认为这个错误只是由Tomcat生成的,因此grails无法对它做任何事情,但是Exception是一个org.springframework.web.util.NestedServletException(嵌套的Exception java.lang.StackOverflowError)并且org.codehaus.groovy.grails堆栈跟踪中有许多打包的类.

我认为显示此异常包括对潜在攻击者的堆栈跟踪是危险的,所以我如何配置grails以始终显示我自己的错误页面?或者只能在Tomcat中配置它?

security error-handling grails tomcat

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

如何在grails GSP标记属性中获取本地化消息?

在Grails GSP中,我想要一个toolTip本地化:

<a href="..." title="localizedMessage">
Run Code Online (Sandbox Code Playgroud)

由于toolTip是在属性标题中写的,所以我不能<g:message>在这里使用.实际上我已经有了本地化消息的服务,但是当我从GSP调用它时,服务的messageSource为null,所以让它工作也是一个解决方案.

service grails internationalization gsp

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

如何间接引用grails GSP模型变量,例如通过.get(...)

我正在使用GSP发送基于MailService插件的电子邮件.sendMail关闭传递(以及其他)body(view:..., model:myModel)

我知道我只能${itemName}在GSP中使用myModel Map的每个项目.但是,由于我有时想动态地构建项目名称'item'+i,我需要有一些周围的方法来访问变量.

我已经尝试了${model.get('item'+i),${params.get('item'+i)但是,模型为null,params是一个空的Map.我也试过了pageScope,但是虽然我可以访问一个项目,但我${pageScope.itemName无法使用,${pageScope.get('item'+i)}因为pageScope不是Map.

可能有多种解决方案可以解决这个问题; 我很高兴一个简单的;-).我看到的一个解决方案是将myModel作为唯一参数传递,然后始终使用myModel.get(...),但这意味着我必须更改所有现有的GSP以始终引用myModel而不是直接访问项目(具有固定名称); 所以如果有一种方法我不必改变传递给GSP的模型,这将是我的最爱.

如果有人也可以在这种情况下对模型和参数的区别说几句话,那么这将是另外有用的!

grails model map params gsp

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

用于将嵌套的List String表示转换回List的Groovy/Java方法

我需要将嵌套List的String表示形式转换回Groovy/Java中的嵌套List(of Strings),例如

String myString = "[[one, two], [three, four]]"
List myList = isThereAnyMethodForThis(myString)
Run Code Online (Sandbox Code Playgroud)

我知道,有一个分裂的字符串用逗号比如Groovy的.split方法,我可以使用正则表达式来识别之间[和]嵌套列表,但我只是想知道,如果有一个现有的方法可以做到这一点,或者如果我必须自己编写这段代码.

我想最简单的事情是List构造函数,它将String表示作为参数,但我还没有找到这样的东西.

java arrays string groovy list

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

如何在 bash 脚本中执行命令,然后聚焦出现的窗口

我有一个像这样的 bash 脚本

#!/bin/sh
firefox &
Run Code Online (Sandbox Code Playgroud)

Firefox 窗口打开,但没有焦点。我该怎么做才能让它自动获得焦点?

我可以使用一些 X 窗口工具/命令,但是如何获取 Firefox 的窗口 ID?窗口名称随着显示的 URL 发生变化,因此没有用。

编辑:我的窗口管理器是 Gnome。

linux bash ubuntu focus window

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

调试日志记录是否会减慢我的(grails)Web应用程序的速度?

我的grails Web应用程序当前将大量调试信息记录到文件中,几乎每个请求都会记录下来.

根据您的经验,我应该在将其转移到生产之前关闭它(这会使得更难以追踪错误),或者即使同时有很多用户,我的应用程序的性能几乎没有影响?

debugging performance grails logging web-applications

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