有没有办法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) 我已经创建了一个带有一些自定义字段的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)
但不起作用.
假设我有一个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)
我期待着一些提示和解释.
我有一个允许用户更改密码的操作.当一切顺利的时候,我想退出他并显示一切顺利的消息,现在他需要使用他的新密码登录.
我试过了:
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消息不再存在.任何想法如何使其工作或可能是一些解决方法?
我有一个用于注册用户的命令对象,我想检查用户的年龄.此命令对象具有服务依赖性.如何为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'参数?
我在Config.groovy中有这个代码:
appenders {
console name: "stdout", layout: pattern(conversionPattern: "%c{2} %m%n")
}
root {
warn 'stdout'
}
Run Code Online (Sandbox Code Playgroud)
现在我想从特定控制器(或特定包)记录具有DEBUG级别的消息.我怎样才能做到这一点?
我正在使用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)
那个怎么样?怎么解决?或许我必须实施自己的解决方案?
我们正在构建一个与其他系统部分交互的应用程序.我们从其他系统中提取一些数据,这些数据作为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,但字体大小错误,样式错误,编码错误.也许你有类似的问题,你做了一些事情?也许有更好的解决方案?
我的控制器如下:
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 ×5
java ×2
constraints ×1
controllers ×1
grails-orm ×1
hash ×1
ibatis ×1
java-ee ×1
list ×1
log4j ×1
logging ×1
mapper ×1
md5 ×1
params ×1
passwords ×1
pdf ×1
rtf ×1
save ×1
service ×1
sharepoint ×1
splist ×1
tomcat ×1
unit-testing ×1
view ×1