網頁

2012年8月30日 星期四

Primary keys must not contain null

執行native query時,出現Primary keys must not contain null
可是PK偏偏又出現在console中,EclipseLink看不懂
其實是因為column name大小寫不一致的問題,加上下面這行就搞定了

在persistence.xml的properties中加入:
<property name="eclipselink.jpa.uppercase-column-names" value="true"/>
順帶一提,sql如果只取出pk的話,一樣可以轉成entity,但是entity中只有pk會有值

list to csv

javascript裡有join()

var ooo = ['a','b','c'];
var csv = ooo.join();   // output: a,b,c

java裡可以用
org.apache.commons.lang.StringUtils

String[] stringArray = {"a","b","c"};
List<string> stringList = Arrays.asList(stringArray);

StringUtils.join( stringArray, "," );  // output:a,b,c
StringUtils.join( stringList, "," );  // output:a,b,c

java array與list互轉


array to list:
import java.util.Arrays;

String[] stringArray = {"a","b","c","d"};
List<String> stringList = Arrays.asList(stringArray); 

list to array:
String[] stringArray2 = stringList.toArray( new String[0] );

xpath快樂入門


xpath快樂入門:
http://www.zvon.org/xxl/XPathTutorial/Output/example1.html

十步學會css定位


真是奇文!

Learn CSS Positioning in Ten Steps:
http://www.barelyfitz.com/screencast/html-training/css/positioning/

css 置中

1. div中的「單行」文字垂直置中:
line-height與height的值一樣即可。

div
{
height: 100px;
line-height: 100px;
}

置中

2. div中的div垂直置中:
方法一:藉由將div模擬成table,再使用屬性vertical-align

html:
<div id="wrap">
     <div id="cell">
          <div id="content">
               要被置中的內容
          </div>
     </div>
</div>
css:
#wrap 
{ display:table; }
#cell
{ display:table-cell; vertical-align:middle; }


方法二:
上面放個div把要置中的內容往下擠

html:
<div>
     <div id="floater"></div>
     <div id="middle"></div>
</div>

css:
#floater的margin-bottom是#middle的height的-0.5倍
#floater
{ 
float:left; 
height:50%; 
margin-bottom:-200px;
width:1px; /* only for IE7 */
}
#middle
{
clear:both; 
height:400px; 
position:relative; }



方法三:
html:
<div id="outer">
    <div id="inner">
</div>
</div>

css:
#outer
{
     position: relative
}
#inner
{
     position:absolute;
     top:0;
     bottom:0;
     left:0;
     right:0;
     margin:auto;
}


3. 表格置中:
table裡的td預設就是置中,也可以用vertical-align來決定垂直的排版
,但是這個屬性只對td跟img有用
可以參照:http://www.w3schools.com/cssref/pr_pos_vertical-align.asp

4. 水平置中:
關於水平置中可以參考這個網頁,裡面講得很詳細
http://www.w3schools.com/css/css_align.asp

5. 使用jQuery把div放在螢幕中間
jQuery加入以下function:
jQuery.fn.center = function () {
    var relativeParent = null;
    $(this).parents().each(function(){
        if( $(this).css("position") == "relative" ){ 
             relativeParent = $(this); 
             return false; 
        } 
     });
    var leftShift = ( relativeParent == null )? 0 : parseInt(relativeParent.offset().left);
    var topShift = ( relativeParent == null )? 0 : parseInt(relativeParent.offset().top);
    
    this.css("position","absolute");
    this.css("top", Math.max(0, (($(window).height() - this.outerHeight()) / 2) + 
                                                $(window).scrollTop()) - topShift + "px";
    this.css("left", Math.max(0, (($(window).width() - this.outerWidth()) / 2) + 
                                                $(window).scrollLeft()) - leftShift + "px");
    return this;
}
執行方式:
$(element).center();



http://stackoverflow.com/questions/210717/using-jquery-to-center-a-div-on-the-screen




我是看這個網頁的,裡面還有更多的置中方式
http://blog.yam.com/hanasan/article/35806444

2012年8月27日 星期一

javascript偵測瀏覽器的方法

最方便的方式是用jQuery
jQuery.browser

傳回一個object
{
msie : true,
version : "9.0"
}

或直接用javascript
var browserInfo = function()
{ 
var agent = navigator.userAgent.toLowerCase();
var that = {};
that.isIE = (agent.indexOf('msie')!=-1); //IE
that.isFF = (agent.indexOf('firefox')!=-1);//firefox
that.isSa = (agent.indexOf('safari')!=-1);//safari
that.isOp = (agent.indexOf('opera')!=-1);//opera
that.isChrome = (agent.indexOf('chrome')!=-1);//chrome
that.isOther = (!this.isIE && !this.isFF && !this.isSa && !this.isOp)//unknown Browser
return that;
}();

browserInfo.isChrome

return:
true