我是Grails的新手。我的JDBC url(Datasource.groovy)是
development {
dataSource {
dbCreate = "create-drop"
url = "jdbc:mysql://localhost/test?useUnicode=yes&zeroDateTimeBehavior=convertToNull&characterEncoding=UTF-8"
}
}
我已按照Grails not encoding the unicode characters properly中的建议操作,并手动将记录更新为中文字符。它在浏览器中正确显示。但当我把它保存回来时,我得到了垃圾。所以我认为数据库连接已经是UTF-8,但表单数据不是用UTF-8解码的。该修复似乎是设置useBodyEncodingForURI,但我在Grails包中找不到server.xml文件。
我该怎么办?
答案 0 :(得分:0)
没有server.xml - 所有内容都是以编程方式配置的。有一些钩子你可以做一些改变,所以这实际上非常简单。
在应用的_Events.groovy
文件夹中创建名为scripts
的文件。添加以下代码:
eventConfigureTomcat = { tomcat ->
tomcat.connector.useBodyEncodingForURI = true
}
这是ConfigureTomcat
事件的Grails / Gant事件回调处理程序,它发送管理嵌入式启动的许多逻辑的org.apache.catalina.startup.Tomcat
实例。它与相同版本的服务器安装的代码相同,但有一些辅助类可以使事情变得更容易。
快速浏览API,您会发现Tomcat
实例具有getConnector
访问者,可以Connector
配置为端口8080 HTTP 1.1连接器,并且还可以删除项目,但在常规Tomcat中,以及类似的地方。
除了编辑现有的已配置类之外,您还可以注册新的servlet,过滤器,甚至整个WAR文件。