小编jac*_*see的帖子

如何在Grails中将特定日期格式作为JSON返回?

在Grails中,您可以使用JSON转换器在控制器中执行此操作:

render Book.list() as JSON
Run Code Online (Sandbox Code Playgroud)

渲染结果是

[
{"id":1,
 "class":"Book",
 "author":"Stephen King",
 "releaseDate":'2007-04-06T00:00:00',
 "title":"The Shining"}
]
Run Code Online (Sandbox Code Playgroud)

您可以通过在Config.groovy中进行设置来控制输出日期

grails.converters.json.date = 'javascript' // default or Javascript
Run Code Online (Sandbox Code Playgroud)

然后结果将是本机javascript日期

[
{"id":1,
 "class":"Book",
 "author":"Stephen King",
 "releaseDate":new Date(1194127343161),
 "title":"The Shining"}
]
Run Code Online (Sandbox Code Playgroud)

如果我想获得这样的特定日期格式:

"releaseDate":"06-04-2007"
Run Code Online (Sandbox Code Playgroud)

我必须使用'collect',这需要大量输入:

return Book.list().collect(){
  [
      id:it.id,
      class:it.class,
      author:it.author,
      releaseDate:new java.text.SimpleDateFormat("dd-MM-yyyy").format(it.releaseDate),
      title:it.title
  ]
} as JSON
Run Code Online (Sandbox Code Playgroud)

有更简单的方法吗?

grails groovy json converters

19
推荐指数
1
解决办法
1万
查看次数

如何在单个EAR中为不同的战争配置多个log4j?

我的EAR结构如下:

APP.ear 
- APP1.war
    - WEB-INF/classes/log4j.properties
- APP2.war
    - WEB-INF/classes/log4j.properties
- app1-ejb.jar
- app2-ejb.jar
- log4j.jar
- spring.jar
- commons-lang.jar (...and other jar)
Run Code Online (Sandbox Code Playgroud)

我希望每个WAR都有自己的应用程序日志.但似乎上面的配置不起作用.APP1和APP2的日志转到APP1的日志.反正有没有创建单独的应用程序日志?

ear configuration log4j war

9
推荐指数
1
解决办法
1万
查看次数

Groovy做价值匹配的方法?

只是想知道groovy方式与默认值进行值匹配吗?

if(params.max != 10 && params.max != 20 && params.max != 30){
    params.max = 10
}
Run Code Online (Sandbox Code Playgroud)

groovy

6
推荐指数
1
解决办法
207
查看次数

jQGrid列选择器隐藏列

我正在使用jQgrid的列选择器功能.有没有办法隐藏列选择器中的某些列(例如db id),以便用户无法"揭示"它们?

plugins jqgrid

6
推荐指数
1
解决办法
2495
查看次数

是否可以在同一页面上加载多个不同版本的jQuery?

我正在创建一个bookmarklet,如果找不到该对象,它将加载jQuery.加载将检查jQuery的版本.代码如下:

(function(){

    var myBkl = {
         loadScript: function(src) {
            if(window.jQuery && window.jQuery.fn.jquery == '1.3.2'){
                return;
            }
            var s = document.createElement('script');
            s.setAttribute('src', src);
            s.setAttribute('type', 'text/javascript');
            document.getElementsByTagName('head')[0].appendChild(s); 
        },
        whenLoaded: function(callback){
            if (typeof(window.jQuery) !== 'undefined' && window.jQuery.fn.jquery == '1.3.2') { 
                callback(window.jQuery); 
            } 
            else {
                setTimeout((function() {myBkl.whenLoaded(callback); }), 100);
            } 
        },
        init: function($){
            console.log($.fn.jquery);
        }
    };
    myBkl.loadScript('http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js');
    myBkl.whenLoaded(myBkl.init);

})();
Run Code Online (Sandbox Code Playgroud)

我使用这个bookmarklet构建器来创建书签http://subsimple.com/bookmarklets/jsbuilder.htm

显然,如果页面已经加载了jQuery.加载1.3.2脚本将覆盖页面上的window.jQuery对象.我只是想知道有没有让1.3.2加载到另一个自命名变量?用jQuery.noConflict(true);

jquery bookmarklet

5
推荐指数
2
解决办法
4518
查看次数

如何试驾GWT开发?

谷歌搜索"TDD"和"GWT"很容易导致这篇文章,作者解释了如何在没有容器的情况下测试GWT应用程序.但是,我认为他的例子不是测试驱动的,因为他先拥有所有设计,然后再编写测试,而不是"先测试".

这让我想到:是否有可能在像GWT这样的UI上进行"先测试"?有人说UI代码不适合TDD.但我认为通过采用MVC模式,也许我们至少可以测试MC部分?(因此V是无法开发测试驱动的UI部分).

我们将在文章示例中首先编写的第一个失败测试是什么?

tdd user-interface gwt

5
推荐指数
1
解决办法
1717
查看次数

使用角度ui-router和ng-animate自动滚动到目标视图的滑动视图

我正在使用AngularJS ui-routerngAnimate在移动设备中创建经典的滑动视图.

我发现在转换开始时,当两个视图都存在于页面上时,如果目标视图在视图端口之外,它将首先跳转到该视图位置,这给我们带来了这样的有趣效果:

plunker

反正有没有避免这个?

angularjs ng-animate angular-ui-router

4
推荐指数
1
解决办法
6427
查看次数

如何配置本地Jetty ssl以避免弱的phermeral DH密钥错误?

我正在使用keytool生成一个密钥库来配置本地开发jetty来运行ssl

keytool.exe -keystore jetty.keystore -alias jetty -genkey -keyalg RSA -sigalg SHA256withRSA
Run Code Online (Sandbox Code Playgroud)

Jetty配置:

<Call name="addConnector">
    <Arg>
        <New class="org.eclipse.jetty.server.ssl.SslSelectChannelConnector">
            <Arg>
                <New class="org.eclipse.jetty.http.ssl.SslContextFactory">
                    <Set name="keyStore">jetty/jetty.keystore</Set>
                    <Set name="keyStorePassword">jetty6</Set>
                    <Set name="keyManagerPassword">jetty6</Set>
                    <Set name="trustStore">jetty/jetty.keystore</Set>
                    <Set name="trustStorePassword">jetty6</Set>
                </New>
            </Arg>
            <Set name="port">8443</Set>
            <Set name="maxIdleTime">30000</Set>
        </New>
    </Arg>
</Call>
Run Code Online (Sandbox Code Playgroud)

直到最近,它在Firefox Aurora和Chrome Canary等新浏览器中运行良好,它拒绝(在Firefox的情况下):

连接到localhost期间发生错误:8443.SSL在服务器密钥交换握手消息中收到了一个弱的短暂Diffie-Hellman密钥.(错误代码:ssl_error_weak_server_ephemeral_dh_key)

无法手动接受它.那么,我应该重新生成一个更强的密钥?或者它是码头的配置?

java ssl jetty

4
推荐指数
1
解决办法
8720
查看次数

正则表达式检查具有打包空间的修复长度字段

假设我有一个要解析的文本文件,其中包含一些固定长度的内容:

123jackysee        45678887
456charliewong     32145644
<3><------16------><--8---> # Not part of the data.
Run Code Online (Sandbox Code Playgroud)

前三个字符是ID,然后是16个字符的用户名,然后是8位电话号码.

我想写一个正则表达式来匹配并验证每一行的输入,我提出的那个:

(\d{3})([A-Za-z ]{16})(\d{8})
Run Code Online (Sandbox Code Playgroud)

用户名应包含8-16个字符.但([A-Za-z ]{16})也会匹配空值或空格.我想,([A-Za-z]{8,16} {0,8})但它会检测超过16个字符.有什么建议?

regex

3
推荐指数
1
解决办法
5199
查看次数

使用CollectionUtils转换List会抛出ArrayStoreException

Java代码:

Transformer TRANSFORM_TO_INTEGER = new Transformer() {
    public Object transform(Object input) {
        Integer i = new Integer((String) input);
        return i;
    }
};

String begin = "1,2,3,4,5";
List strList = Arrays.asList(StringUtils.split(begin, ","));
CollectionUtils.transform(strList, TRANSFORM_TO_INTEGER);
Run Code Online (Sandbox Code Playgroud)

此代码将抛出ArrayStoreException:

java.lang.ArrayStoreException
at java.util.Arrays$ArrayList.set(Arrays.java:2360)
at java.util.AbstractList$ListItr.set(AbstractList.java:488)
at org.apache.commons.collections.CollectionUtils.transform(CollectionUtils.java:434)
Run Code Online (Sandbox Code Playgroud)

这是为什么?

java collections apache-commons

3
推荐指数
1
解决办法
8996
查看次数

keyup大写问题

我希望有一个输入在keyup上改为大写.所以我在keyup上附上一个简单的事件.

HTML

<input id="test"/>
Run Code Online (Sandbox Code Playgroud)

Javascript(使用jQuery)

$("#test").keyup(function(){
  this.value = this.value.toUpperCase();
});
Run Code Online (Sandbox Code Playgroud)

但是我发现在Chrome和IE中,当你按下左箭头时,光标会自动移动到最后.我注意到我应该检测输入是否只是字母.我应该使用键码范围或正则表达式进行检测吗?

示例:http://jsbin.com/omope3

javascript javascript-events onkeyup

2
推荐指数
1
解决办法
6262
查看次数