我是Grails的新手,我已经实现了删除收件箱中的消息的删除操作,但是现在我想更改flash消息,如果删除多个消息,则显示"2个消息已删除"而不是"消息4已删除,消息5已删除"。请协助,以下是我的删除动作
def delete() {
def messageInstance = Message.get(params.id)
// render error if no message found
if (!messageInstance) {
flash.message = message(code: 'default.not.found.message', args: [message(code: 'message.label', default: 'Message'), params.id])
redirect(action: "phone")
} else {
// get the device that we are deleting from
//specify phoneNumber so as to delete the device by phoneNumber
def device = MessagingDevice.findByPhoneNumber(params.phoneNumber)
// invoke deleteFromDevice on domain object, which returns true if successful
if (messageInstance.deleteFromDevice(device)) {
flash.message = message(code: 'default.deleted.message', args: [message(code: 'message.label', default: 'Message'), params.id])
redirect(action: "phone", params:[phoneNumber:params.phoneNumber])
}
}
}
代码:
int count = 5 //number of deleted messages
flash.message = message(code: 'default.deleted.messages', args: [message(code: 'messages.label', default: 'Messages'), count])
在messages.properties: messages.label=Messages
default.deleted.messages={1} {0} deleted
如果你在messages.properties
中查找default.deleted.message
键你会看到它看起来像
default.deleted.message={0} {1} deleted
只需在新行中添加所需的键和值。
inbox.deleted.message={0} messages deleted
并在控制器
中使用它flash.message = message(code: 'inbox.deleted.message', args: [deletedMessageCount])
当然,您需要在使用deletedMessageCount
之前定义一个值
你可以这样做:
def device = MessagingDevice.findByPhoneNumber(params.phoneNumber)
// invoke deleteFromDevice on domain object, which returns number of objects deleted
def count = messageInstance.deleteFromDevice(device)
if (count) {
flash.message = message(code: 'default.deleted.message', args: [message(code: 'message.deleted.label', default: '{0} Messages deleted'), count])
redirect(action: "phone", params:[phoneNumber:params.phoneNumber])
}
和messages.properties
message.deleted.label={0} deleted