Правильный синтаксис для добавления mime-отображения в web.xml в плагине Grails - PullRequest
2 голосов
/ 15 апреля 2009

Я пытаюсь добавить элемент mime-mapping в web.xml.

Мой лучший лучший удар:

def doWithWebDescriptor = { xml ->
    xml + {
        'mime-mapping' {
            'extension'("htc")
            'mime-type'("text/x-component")
        }
    }
}

Я знаю, что код выполняется, так как вышеприведенный код выводит неверный файл web.xml. Следующее представляется более логичным, но на самом деле это не имеет никакого эффекта:

def doWithWebDescriptor = { xml ->
    xml.'mime-mapping' + {
            'extension'("htc")
            'mime-type'("text/x-component")
        }
}

редактировать: я использую Grails 1.0.3

Ответы [ 3 ]

2 голосов
/ 01 мая 2011

Я полагаю, что теперь вы можете сделать то же самое, добавив элемент mime-mapping непосредственно в шаблон web.xml в src/templates/war/web.xml следующим образом:

<mime-mapping> 
    <extension>htc</extension>
    <mime-type>text/x-component</mime-type> 
</mime-mapping>
1 голос
/ 21 апреля 2009

Попробуйте

def doWithWebDescriptor = { xml ->
    xml << {
        'mime-mapping' {
            'extension'("htc")
            'mime-type'("text/x-component")
        }
    }
}

(обратите внимание на leftShift вместо plus).

В качестве альтернативы, если вы хотите убедиться, что ваш новый элемент вставлен в определенную позицию в XML, вы можете получить дочерний элемент, после которого вы хотите, чтобы ваш элемент был вставлен, и добавить свой с помощью оператора plus , Например, я использую следующий код для добавления нового отображения сервлета:

def servletMappings = xml.'servlet-mapping'
servletMappings[servletMappings.size() - 1] + {
    'servlet-mapping' {
        'servlet-name'("myServlet")
        'url-pattern'("/myURL")
    }
}

Если вы хотите углубиться в это, посмотрите на groovy.util.slurpersupport.NodeChild (аргумент xml этого типа) и его суперкласс groovy.util.slurpersupport.GPathResult.

Удачи!

0 голосов
/ 15 апреля 2009

Хм, единственное, что я смог найти, это свойство конфигурации, которое необходимо установить для правильного доступа к mime-типам в запросах:

grails.mime.file.extensions = true

Попробуйте убедиться, что для него установлено значение true, а затем повторите попытку с работающим кодом?

...