当我在Double form字段上使用带有小数分隔符的grail自动数据绑定"ex:Test t = new Test(params)"时,我遇到了问题.经过几次搜索,我发现它与浏览器Locale有关.
示例:如果我输入小数点后用点'3.45'分隔的数字则不起作用(忽略数字的小数部分).它在我的数据库中存储3.0
如果我进行相同的测试,但使用逗号'3,45'作为小数分隔符,一切正常.Grails在数据库中存储3.45.
问题是没有人用逗号分隔符输入数字.(当设置为fr_CA时,即使小键盘输入一个点'.')
我已经找到了一些解决方案,如注册自定义数字编辑器(当你有很多应用程序时有点痛苦)或者将全局localeResolver设置为en_US(最后一个不能完成工作,因为我放弃了我的应用程序的所有国际化功能).
那么,有人有一个简单的解决方案来解决这个问题吗?
使用:Grails:2.2.0浏览器:谷歌浏览器(语言环境fr_CA)
非常感谢!
我在Spring 4 MVC + Security + Boot项目中设置了一个自定义身份验证过滤器.过滤器做得很好,现在我想禁用某些URI的安全性(比如/api/**).这是我的配置
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter{
@Override
public void configure(WebSecurity webSecurity) throws Exception {
webSecurity.ignoring().antMatchers("/api/**");
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.anyRequest().authenticated()
.and()
.addFilterBefore(filter, BasicAuthenticationFilter.class);
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,当我在/ api/...下调用资源时,过滤器仍然被链接.我在我的过滤器中添加了println,并在每次调用时将其写入控制台.你知道我的配置有什么问题吗?
UPDATE
过滤代码:
@Component
public class EAccessAuthenticationFilter extends RequestHeaderAuthenticationFilter {
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
System.out.println("FILTER");
if(SecurityContextHolder.getContext().getAuthentication() == null){
//Do my authentication stuff
PreAuthenticatedAuthenticationToken authentication = new PreAuthenticatedAuthenticationToken(user, credential, authorities); …Run Code Online (Sandbox Code Playgroud) 我正在测试Google Maps V3 API的新Symbols对象.我已经使用相同的符号路径和颜色设置了400个标记的每个"图标"属性.
使用Firefox或Chrome查看示例页面时,所有内容都会快速加载并且运行良好.
不幸的是...... Internet Explorer中的性能非常糟糕.在加载时以及我尝试拖动或缩放地图时都不好.
这是一个简单的javascript示例,您可以使用它来测试IE
var map;
function initialize() {
var mapDiv = document.getElementById('map-canvas');
map = new google.maps.Map(mapDiv, {
center: new google.maps.LatLng(37.4419, -122.1419),
zoom: 13,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
google.maps.event.addListenerOnce(map, 'tilesloaded', addMarkers);
}
function addMarkers() {
var bounds = map.getBounds();
var southWest = bounds.getSouthWest();
var northEast = bounds.getNorthEast();
var lngSpan = northEast.lng() - southWest.lng();
var latSpan = northEast.lat() - southWest.lat();
for (var i = 0; i < 400; i++) {
var latLng = new google.maps.LatLng(southWest.lat() + latSpan …Run Code Online (Sandbox Code Playgroud)