小编jjc*_*pek的帖子

覆盖dateCreated以在Grails中进行测试

有没有办法dateCreated在不关闭自动时间戳的情况下覆盖域类中字段的值?

我需要测试控制器,我必须提供具有特定创建日期的特定域对象,但GORM似乎覆盖了我提供的值.

编辑

我的课程看起来像这样:

class Message {

    String content
    String title
    User author

    Date dateCreated
    Date lastUpdated

    static hasMany = [comments : Comment]

    static constraints = {
        content blank: false
        author nullable: false
        title nullable: false, blank: false
    }

    static mapping = {
        tablePerHierarchy false
        tablePerSubclass true
        content type: "text"
        sort dateCreated: 'desc'
    }
}

class BlogMessage extends Message{

    static belongsTo = [blog : Blog]

    static constraints = {
        blog nullable: false
    }

}
Run Code Online (Sandbox Code Playgroud)

我正在使用控制台来缩短时间.当我写作时,我遇到的问题是Victor的方法:

Date someValidDate = …
Run Code Online (Sandbox Code Playgroud)

grails save grails-orm

19
推荐指数
5
解决办法
5208
查看次数

将字段添加到SPList默认视图

我已经创建了一个带有一些自定义字段的SPList实例.但是当我在sharepoint(默认视图)中查看此列表时,只显示"标题"列.如何将我的列添加到新创建的列表的默认视图中?

我试过了:

list.Fields.Add("Foo", SPFieldType.Text, true):
list.View[0].ViewFields.Add("Foo");
list.View[0].Update();
list.Update();
Run Code Online (Sandbox Code Playgroud)

但不起作用.

sharepoint list view splist

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

防止tomcat在部署时启动应用程序

有没有办法告诉Tomcat不要自动启动我要部署的应用程序?我想手动这个.

java tomcat java-ee

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

iBatis多参数映射器方法

假设我有一个getUser带有两个参数的查询- userName和password.我想要一个如下所示的mapper方法:

public UserBean getUser(String userName, String password);
Run Code Online (Sandbox Code Playgroud)

有什么方法可以实现这样的目标吗?或者也许我应该传递我的mapper方法参数图(以及我的xml映射器中的一些parameterMap)?

public UserBean getUser(Map<String, Object> paramMap);
Run Code Online (Sandbox Code Playgroud)

我期待着一些提示和解释.

ibatis mapper

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

Grails Spring Security Core注销消息

我有一个允许用户更改密码的操作.当一切顺利的时候,我想退出他并显示一切顺利的消息,现在他需要使用他的新密码登录.

我试过了:

flash.message = "You may now login with your new password"
redirect (controller: 'logout')
Run Code Online (Sandbox Code Playgroud)

事情是Logout控制器重定向到:

redirect uri: SpringSecurityUtils.securityConfig.logout.filterProcessesUrl
Run Code Online (Sandbox Code Playgroud)

当用户明确注销并返回主页时,我的flash消息不再存在.任何想法如何使其工作或可能是一些解决方法?

grails spring-security

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

单元测试具有依赖性的命令对象的自定义验证器

我有一个用于注册用户的命令对象,我想检查用户的年龄.此命令对象具有服务依赖性.如何为dateOfBirth属性测试自定义验证器?现在看起来直接来自文档,这里.

class RegisterUserCommand {

  def someService

  String username
  String password
  String password2
  String email
  Date dateOfBirth

  static constraints = {
    // other constraints
    dateOfBirth blank: false, validator: {val, obj ->
      return obj.someService.calculateAge(val) >= 18
    }
  }
Run Code Online (Sandbox Code Playgroud)

所以基本上问题是:如何模拟验证器闭包的'obj'参数?

service grails unit-testing constraints

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

登录特定控制器的grails

我在Config.groovy中有这个代码:

    appenders {
        console name: "stdout", layout: pattern(conversionPattern: "%c{2} %m%n")
    }

    root {
        warn 'stdout'
    }
Run Code Online (Sandbox Code Playgroud)

现在我想从特定控制器(或特定包)记录具有DEBUG级别的消息.我怎样才能做到这一点?

grails logging log4j

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

玩!哈希密码返回错误结果

我正在使用Play 1.2.1.我想哈希我的用户密码.我认为那Crypto.passwordHash会很好,但事实并非如此.passwordHash文档说它返回MD5密码哈希.我在fixture中创建了一些用户帐户,我把md5密码哈希:

  ...
User(admin):
  login: admin
  password: f1682b54de57d202ba947a0af26399fd
  fullName: Administrator
  ...
Run Code Online (Sandbox Code Playgroud)

问题是,当我尝试登录时,使用以下内容:

user.password.equals(Crypto.passwordHash(password))
Run Code Online (Sandbox Code Playgroud)

它不起作用.所以我在我的autentify方法中放了一个日志语句:

Logger.info("\nUser hashed password is %s " +
                    "\nPassed password is %s " +
                    "\nHashed passed password is %s",
                    user.password, password, Crypto.passwordHash(password));
Run Code Online (Sandbox Code Playgroud)

密码哈希确实不同,但是嘿!passwordHash方法的输出甚至不是MD5哈希:

15:02:16,164 INFO  ~
User hashed password is f1682b54de57d202ba947a0af26399fd
Passed password is <you don't have to know this :P>
Hashed passed password is 8WgrVN5X0gK6lHoK8mOZ/Q==
Run Code Online (Sandbox Code Playgroud)

那个怎么样?怎么解决?或许我必须实施自己的解决方案?

passwords hash md5 playframework

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

用Java实现RTF到PDF

我们正在构建一个与其他系统部分交互的应用程序.我们从其他系统中提取一些数据,这些数据作为RTF文档返回.但我们必须阻止用户编辑此文件,因此我们考虑将其与iText一起转换为PDF.代码段:

        // moving the rtf data into input stream to be used in RTF parser
        ByteArrayInputStream rtfInputStream = new ByteArrayInputStream(rtfStream.toByteArray());

        // set headers
        resp.setHeader("Cache-Control", "no-store");
        resp.addHeader("Content-Type", "application/pdf");
        resp.addHeader("Content-Disposition", "inline; filename=Karta.pdf");
        resp.setStatus(HttpServletResponse.SC_OK);


        // pdf output stream
        ByteArrayOutputStream pdfStream = new ByteArrayOutputStream();

        Document pdfDoc = new Document();

        PdfWriter pdfWriter = PdfWriter.getInstance(pdfDoc, pdfStream);

        pdfDoc.open();

        RtfParser rtfParser = new RtfParser(null);

        rtfParser.convertRtfDocument(rtfInputStream, pdfDoc);
        pdfDoc.close();

        pdfWriter.close();

        resp.getOutputStream().write(pdfStream.toByteArray());

        rtfInputStream.close();
        pdfStream.close();
        is.close();
Run Code Online (Sandbox Code Playgroud)

创建了Pdf,但字体大小错误,样式错误,编码错误.也许你有类似的问题,你做了一些事情?也许有更好的解决方案?

java pdf pdf-generation rtf

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

Grails控制器传递参数

我的控制器如下:

def participated = {
  def temp = ConferenceUser.get(params.temp)

  def prizes = Prizes.findAllByConferenceUser(temp) // find all rooms where current computer is
  def subms = Submissions.findAllByConferenceUser(temp) // find all rooms where current computer is

  [temp: temp, priz: prizes, subm: subms]
}
Run Code Online (Sandbox Code Playgroud)

但不知何故,当我成功更新会议价值时,我想回到初始页面(参与),但我不知道如何传回params.temp.(如果我做一个简单的重定向,正如控制器所期望的那样params.temp,它会给我一个错误,因为我无法使用null对象作为参数搜索奖品.所以,想象一下我的更新控制器如下:

def update = {
  def saveParamshere = params.temp
  ...
  ...
  (code here)
  ...
  ...

  redirect(action: "participated", params: [temp: saveParamshere])
}
Run Code Online (Sandbox Code Playgroud)

此代码无效.如何成功返回主页并传入params.temp

grails controllers params

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