-1

こんにちは、Grails の初心者です。受信トレイ内のメッセージを削除する削除アクションを実装しましたが、複数のメッセージを削除する場合、「メッセージ 4 が削除され、メッセージ 5 が削除されました」ではなく、「2 メッセージが削除されました」と表示されるようにフラッシュ メッセージを変更したいと考えています。以下は私の削除アクションです

デフ削除(){

    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])
        }
    }
}
4

3 に答える 3

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
于 2013-01-07T09:10:49.157 に答える
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使用する前に値を定義する必要があります。

于 2013-01-07T17:00:32.720 に答える
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
于 2013-01-07T16:05:04.540 に答える