Grails编辑Flash删除消息



我是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