Grails编辑Flash删除消息

时间:2013-01-07 09:01:04

标签: grails

嗨,我是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])
        }
    }
}

3 个答案:

答案 0 :(得分:0)

代码:

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

答案 1 :(得分:0)

你可以这样做:

    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

答案 2 :(得分:0)

如果您在default.deleted.message中查找messages.properties键,您会看到它

default.deleted.message={0} {1} deleted

只需添加一个包含所需键和值的新行。

inbox.deleted.message={0} messages deleted

并在您的控制器中使用它

flash.message = message(code: 'inbox.deleted.message', args: [deletedMessageCount])

当然,在使用之前,您需要为deletedMessageCount定义一个值。