2

我正在尝试向 web.xml 添加一个 mime-mapping 元素。

我目前最好的刺是:

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

4

3 回答 3

2

我相信您现在可以通过将mime-mapping元素直接添加到 web.xml 模板来完成同样的事情,src/templates/war/web.xml如下所示:

<mime-mapping> 
    <extension>htc</extension>
    <mime-type>text/x-component</mime-type> 
</mime-mapping>
于 2011-05-01T00:02:52.077 回答
1

尝试

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

(注意,leftShift而不是plus)。

或者,如果您想确保将新元素插入到 XML 中的特定位置,您可以获取子元素,然后插入您的元素,然后使用plus运算符添加您的元素。例如,我使用以下代码添加新的 servlet 映射:

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

如果您想进一步深入研究,请查看groovy.util.slurpersupport.NodeChildxml参数属于该类型)及其超类groovy.util.slurpersupport.GPathResult

祝你好运!

于 2009-04-21T14:23:51.507 回答
0

嗯,我能找到的唯一东西是必须设置的配置属性才能正确访问请求中的 mime 类型:

grails.mime.file.extensions = true

尝试确保将其设置为 true,然后使用有效的代码再次尝试?

于 2009-04-15T17:58:39.390 回答