小编Hoà*_*ong的帖子

Grails项目结构概述

我试图尽可能完整地找到有关Grails项目结构的概述.我看,并非所有项目都使用"grails create-app"生成的默认结构

%PROJECT_HOME%
    + grails-app
       + conf                 ---> location of configuration artifacts 
           + hibernate        ---> optional hibernate config
           + spring           ---> optional spring config
       + controllers          ---> location of controller artifacts
       + domain               ---> location of domain classes
       + i18n                 ---> location of message bundles for i18n
       + services             ---> location of services
       + taglib               ---> location of tag libraries
       + util                 ---> location of special utility classes 
       + views                ---> location of views
           + layouts          ---> location of layouts …
Run Code Online (Sandbox Code Playgroud)

grails

12
推荐指数
1
解决办法
8649
查看次数

如何在Spring中使用注释验证并从属性文件中获取错误消息?

我是春季新手.

我在我的域类中设置了验证,如下所示:

public class Worker {

    @NotNull(message="Name must be input")
    @Size(min=1,max=50, message="Name must not exceed 50 characters")
    private String name;
...

}
Run Code Online (Sandbox Code Playgroud)

这是jsp文件:

<form:input path="code" readonly="false" />
<font color="red"><form:errors path="code" />
Run Code Online (Sandbox Code Playgroud)

和控制器代码:

@RequestMapping(value="/test",method=RequestMethod.POST)
    public void form(@Valid Worker worker, BindingResult result) {

        if (result.hasErrors()) {
            return;
        }
...
Run Code Online (Sandbox Code Playgroud)

它有效,但如何在我的messageSource中用一些文本(如worker.name.overflow)替换"名称不能超过50个字符"?我可以在BindingResult中添加一个messageResolver吗?

所有搜索结果似乎都是关于编写自定义Validator类的,但我现在想要使用注释.我很确定有办法,因为在这个问题上有人这样做了.

java validation spring spring-mvc

11
推荐指数
2
解决办法
3万
查看次数

处理大文件时,IntelliJ非常慢

我正在使用Guidewire开发工作室(基于IntelliJ的IDE),处理大文本文件(大约1500行及以上)时速度非常慢.我尝试了一个开箱即用的社区IntelliJ,但遇到了同样的问题.

当我打开这些文件时,键入一个字符需要1秒,即使我清楚地看到使用的内存仍然很多(1441 MB/3959 MB).此外,如果我打开多个文件(我只为IntelliJ分配4GB),它会迅速吸收所有内存.Intellisense和其他自动化的东西也很痛苦.

我喜欢IntelliJ,但在这种情况下工作真是太难了.有没有办法解决这个问题?我想到了一些替代品,比如:

  1. 在另一个编辑器上编辑大文件(例如:Notepad ++),然后在IntelliJ上重新加载它
  2. 打开另一个小文件,在那里复制你的代码,编辑它,然后将其复制回来.它会有所帮助,因为智能感知和代码突出显示得以维持,但这很麻烦

我确实关闭了所有不必要的插件,只留下了必要的插件,但没有任何改进.

我也想知道我是否可以在IntelliJ中"嵌入"一些外部编辑器?像Notepad ++,Notepad2例如?我完成了我的作业和谷歌,但没有找到允许这样做的插件/配置.

是否有经验丰富的人可以给我一些建议如何使用IntelliJ中的大文件(不要生气)?

更新:通过我的研究,我了解到IntelliJ可以打破非常大的文件(如20mb)等等.但我的文件并不大.它只有大约100KB - 1MB,但它是非常长的文本.

更新2设法增加堆内存Sajidkhan提醒后(我改变了这两个idea64.vmoptions和idea.vmoptions),我认识到,不知何故的IntelliJ并不需要改变.内存堆最大停留在3GB.

另一方面,当系统仅使用约1GB的堆内存时,可以感知到性能缓慢,因此我认为该问题与内存问题无关.

java intellij-idea intellij-plugin guidewire

9
推荐指数
2
解决办法
7046
查看次数

validate()和hasErrors()之间的联系是什么

这个问题来自我的另一个问题.在那个问题中,我遇到一种情况,即hasErrors()函数不适用于非持久域类,即使在我按照指令执行的所有操作之后,第7.5部分也是如此.

按照Victor的方式,我通过调用validate()修复了问题,但我不明白它为什么会起作用.Grails文档似乎没有说明你应该在hasErrors()函数之前调用validate().怎么会发生这种情况?

grails grails-validation

8
推荐指数
1
解决办法
5997
查看次数

单元测试:断言不起作用?

我正在申请UnitTest一段时间,今天我遇到了一些非常奇怪的事情.考虑以下代码:

TestObject alo = null;
assert alo != null; // Pass!!!
Assert.assertNotNull(alo); // Fail, as expected.
Run Code Online (Sandbox Code Playgroud)

我google了一下,发现assert是java内置的,而assertNotNull是JUnit支持的.但我无法理解为什么断言不抱怨null对象?

java junit unit-testing

6
推荐指数
1
解决办法
1万
查看次数

在SpringSecurity中忽略用户名的情况

SpringSecurity是否有一些内置的能力来忽略用户名的字母大小写?例如,如果用户名是"student001",那么它将接受"Student001"以及"stUdent001".

我需要这个的原因是我们的系统使用电子邮件作为用户名.当然我可以通过扩展DAOAuthenticationProvider类来做到这一点,但我只是想知道这个问题是否存在任何内置选项?

java spring-mvc spring-security

6
推荐指数
1
解决办法
4565
查看次数

在页面加载时阻止单击链接

我有一个带有一些链接的网页,我需要通过jQuery拦截链接点击事件.任务完成得很好,但随后出现问题:如果用户在javascript未完成加载时单击链接,则链接到另一个页面(这是一个错误).

我试图找到一种方法来在页面加载完成之前禁用链接点击,但现在最好的解决方案是我必须添加onclick="return false;"到我的链接中,这不是很优雅.有没有更好的解决方案?

谢谢你的帮助,

html javascript javascript-events

5
推荐指数
2
解决办法
7267
查看次数

Grails - 查找用户今天创建的所有帖子

我有一个域对象.

class Post {
  User user
  String subject
  String body
  Date dateCreated
}
Run Code Online (Sandbox Code Playgroud)

我该怎么做?直接GORM,HQL或标准是更好的方法吗?我不知道什么样的日期操作("今天eq")将在标准中起作用.

grails hibernate date grails-orm

5
推荐指数
2
解决办法
3208
查看次数

调用shutdown.sh后Tomcat关机非常慢?

我的情况是这样的:

每次在将war文件上传到web-app文件夹之前,我都会通过调用来停止Tomcat sh shutdown.sh.过去大约需要30秒才能完全停机.但现在它不再适用了.

实际上,它做了一些工作,因为当我从网页访问应用程序时,它会抛出503错误(在维护下).但是当我ps aux | grep tomcat用来检查时,tomcat进程仍然存在.它将在那里大约5-10分钟.

我知道可能需要花费额外的时间才能完成所有任务,但是在它完全停止之前它太慢了(5-10分钟).我不明白为什么会这样,但必须有一些原因.也许这与代码或我们最近使用的新部署脚本有关.我几乎不知道在哪里检查.

这对我们的团队很重要,因为我们正在使用"自动部署",我们使用脚本自动打包war文件,在特定时间上传和部署.如果我们在旧的tomcat实例成功关闭之前启动了一个新的tomcat实例,它会挂在那里永恒,并且通过"kill -9"清理任务是令人生畏的.

有没有人尝试过这个问题?任何线索将不胜感激.

java linux apache tomcat tomcat6

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

Geotools lib 突然从存储库中消失

昨天当我尝试构建一个公共服务时,它产生了一个错误

253 引起:org.eclipse.aether.resolution.ArtifactResolutionException:无法解析以下工件:org.geotools:gt-main:jar:21.2, org.geotools:gt-epsg-wkt:jar:21.2, org. geotools:gt-epsg-hsql:jar:21.2: 在 spring-milestones ( https://repo.spring.io/milestone ) 中找不到工件 org.geotools:gt-main:jar:21.2

几个小时前,在问题发生之前,它是成功的。很长一段时间没有做出任何改变。

我们使用多个存储库,其中之一是http://download.osgeo.org/webdav/geotools。但现在似乎 URL 已关闭。不知道它何时以及为什么关闭 - 我在 osgeo.org 主页上找不到任何内容。

无论如何要收到有关此类问题的警告?我应该怎么做才能防止问题再次发生?

java spring maven geotools

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