var arr = []; // map에 담긴 value를 리스트에 담기위한 객체
    
    /*
        map 에 담긴 value 가져오기
        모든 브라우저에서 가능
    */
    tagCodeMap.forEach(function (value, key, map) {
        console.log("map.get(" + key + ")" + " = " + value);
        arr.push(value);
    });
    var arr = []; // map에 담긴 value를 리스트에 담기위한 객체
    
    /*
        IE에선 안되는 코드. values() 가 안먹힘
    */
    var it = tagCodeMap.values();
    do{
        var itObj = it.next();
        if( itObj.done == true ){
            console.log("STOP!!!!!!!!!!!");
            break;
        } else {
            arr.push(itObj.value);
        }

    } while( true ); 

Map 참고

Map.values 레퍼런스 : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/values#Browser_compatibility
Map 레퍼런스 : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/prototype

 

Map.prototype

The Map.prototype property represents the prototype for the Map constructor.

developer.mozilla.org

 

'Develope > Jquery' 카테고리의 다른 글

JS 글자 수 byte로 체크  (0) 2019.05.27
iCheck 이벤트 처리  (0) 2019.02.22
java.security.NoSuchProviderException: No such provider: BC 발생

bcprov-jdk.jar 다운받으면 됨.
(http://www.java2s.com/Code/Jar/b/Downloadbcprovjdk16146jar.htm)
jar 다운받고 소스에 한줄 넣어주기
Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());

1.Security provider 추가 : BC provider
   수정 파일 - /home/jboss/src/jdk1.7.0_80/jre/lib/security/java.security
   수정 내용 - security.provider.10=org.bouncycastle.jce.provider.BouncyCastleProvider

2.Lib 추가
   추가한 경로 - /home/jboss/src/jdk1.7.0_80/jre/lib/ext/
   추가한 파일 - bcprov-jdk16-146.jar

 

java.security 파일 편집

수정한 java.security 내용

'Develope > Java&Spring' 카테고리의 다른 글

gradle 외부 라이브러리 추가  (0) 2019.02.28
Apache tika로 Mime-type 가져오기  (0) 2019.02.28
gradle 버전 변경  (0) 2019.02.28
Spring Boot CLI로 실행하기  (0) 2017.12.15
var wordMaxLenMap = new Map();
wordMaxLenMap.set("title", 22);
wordMaxLenMap.set("content", 32);


// 각종 "명" 글자수 체크
function fnCheckWord(obj){
    var len = 0;
    var maxByte = 0;

    if (wordMaxLenMap.has($(obj).attr("name"))) {
        maxByte = wordMaxLenMap.get($(obj).attr("name"));
    }
    var str = $(obj).val();
    var totalByte = 0;
    var oneChar = "";
    for (var i = 0; i < str.length; i++) {
        oneChar = str.charAt(i);
        if (escape(oneChar).length > 4) {
            totalByte += 2;
        } else {
            totalByte++;
        }

        // 입력한 문자 길이보다 넘치면 잘라내기 위해 저장
        if (totalByte <= maxByte) {
            len = i + 1;
        }
    }

    if( $(obj).attr("name") == "giftName" ){
        $(obj).parent().parent().find("p.bytes").text( totalByte + "/" + maxByte);
    } else {
        $(obj).parent().find("p.bytes").text( totalByte + "/" + maxByte);
    }

    if (totalByte > maxByte) {
        // alert(maxByte + "자를 초과 입력 할 수 없습니다.");
        $(obj).val(str.substr(0, len));
        // fnCheckWord($(obj), maxByte);
    }
}

'Develope > Jquery' 카테고리의 다른 글

IE 에서 Map.values 대체하여 사용하기  (0) 2019.06.19
iCheck 이벤트 처리  (0) 2019.02.22

이건 번외인데...


build.gradle 에 tika-parser 적용후에 intelliJ에서 톰캣 띄울때 계속 오류가 나서


오류내용


Error running 'Application': Command line is too long. Shorten command line for Application or also for Spring Boot default configuration. 



외부 파일 로딩하도록 수정했지..

compile fileTree(dir: 'ext_libs', include: ['*.jar']) 


일단 이렇게 해서 수정된 소스를 서버에 올려서 수정하긴 했는데 말야..


왜 인텔리J에서만 오류가 날까?


혹시나해서 이클립스에서 build.gradle 수정해서 올려봤는데 완전 잘됨..

compile('org.apache.tika:tika-parsers:1.20') 


이래야 정상인데.. 그치?


- 조치

이것저것 찾아보니까 intelliJ에서 저런 오류가 발생하면 workspace.xml 파일을 한줄 추가해주라더라.

<property name="dynamic.classpath" value="true" />  


intelliJ로 실행하면 내 프로젝트 하위 폴더에 라는 폴더가 생겨있을꺼야


.idea/workspace.xml 파일 찾아서 열어서 수정

<component name="PropertiesComponent">
    <property name="dynamic.classpath" value="true" />
    .....

  </component>



이유는 모르겠어... 왜 그런건지 알게되면 나중에 또 올리겠음.



참고

https://devis.cool/quick-fix/quickfix-intellij-idea-command-line-is-too-long-shorten-command-line-for/

1. 각 파일별 추가를 원할 때


dependencies {

compile files("libs/tika-app-1.20.jar")

}


2. 디렉토리 내 전체 파일 추가 원할 때


dependencies {

compile fileTree(dir: 'ext_libs', include: '*.jar')

}



'Develope > Java&Spring' 카테고리의 다른 글

암/복호화 이슈 - No such provider  (0) 2019.06.11
Apache tika로 Mime-type 가져오기  (0) 2019.02.28
gradle 버전 변경  (0) 2019.02.28
Spring Boot CLI로 실행하기  (0) 2017.12.15


- build.gradle 수정

compile('org.apache.tika:tika-parsers:1.20') 


gradle 빌드 진행 후 라이브러리 추가된것 확인



소스

List<String> permitImgMimeType = Arrays.asList("image/pjpeg", "image/gif", "image/jpeg", "image/png", "image/x-png");

inputStream = mfile.getInputStream();
String mimeType = new Tika().detect(inputStream);
mimeType = StringUtils.isBlank(mimeType) ? "" : mimeType;

if( !permitImgMimeType.contains(mimeType.toLowerCase()) ){
//error

log.error("파일 형식이 유효하지 않습니다.");

} 



* JAVA로 파일 MIME-TYPE 체크하기 위해 Apache tika 적용한 이유는 아래 블로그 참고

참고 : https://offbyone.tistory.com/330

'Develope > Java&Spring' 카테고리의 다른 글

암/복호화 이슈 - No such provider  (0) 2019.06.11
gradle 외부 라이브러리 추가  (0) 2019.02.28
gradle 버전 변경  (0) 2019.02.28
Spring Boot CLI로 실행하기  (0) 2017.12.15

프로젝트 루트(gradlew 파일이 있는) 디렉토리에서 다음과 같은 명령을 실행하면 된다.

gradlew wrapper --gradle-version 4.7


명령이 설공적으로 실행되면 gradle/wrapper/gradle-wrapper.jar와 gradle/wrapper/gradle-wrapper.properties 파일의 distributionUrl의 버전이 위 명령에서 지정한 버전으로 변경된다.

  • gradle/wrapper/gradle-wrapper.properties

    #Wed Mar 08 16:37:38 KST 2017
    distributionBase=GRADLE_USER_HOME
    distributionPath=wrapper/dists
    distributionUrl=https\://services.gradle.org/distributions/gradle-4.7-bin.zip
    zipStoreBase=GRADLE_USER_HOME
    zipStorePath=wrapper/dists


> intelliJ 콘솔에서 처리

'Develope > Java&Spring' 카테고리의 다른 글

암/복호화 이슈 - No such provider  (0) 2019.06.11
gradle 외부 라이브러리 추가  (0) 2019.02.28
Apache tika로 Mime-type 가져오기  (0) 2019.02.28
Spring Boot CLI로 실행하기  (0) 2017.12.15


보통 checkbox 쓸때와 살짝 다름


퍼블리셔가 icheck 라이브러리를 써서 이에 걸맞게 이벤트 처리를 하느라 아주 살짝 곤욕을 치뤄서 끄적끄적하게됨


하려고 한건 아래 그림에 있는거처럼


사용기간에 있는 "노출 기간과 동일" 체크 박스를 누르면 노출기간이 그대로 사용기간으로 셋팅되게 하는거였어



이때, 노출기간에 아무런 값이 없으면 노출기간 입력하라는 메세지를 띄우고 체크박스는 해제 하는게 되는거였지


근데 암만 해도 안되는겨..


 $("#equalViewDateChk").on("ifChecked", function(evt){

    var checked = evt.target.checked;

    var viewStartDate = $("input[name=viewStartDate]");

    if( $(viewStartDate).val() == "" ){

        var icheck = $(this);


        alert("노출 기간 시작일을 입력해주세요.");

        $(icheck).iCheck('uncheck'); <-- 이 부분이 안됨. 문법 오류 없고!

        $(viewStartDate).focus();


    } else {

        $("input[name=useStartDate]").val($(viewStartDate).val());

        $("input[name=useEndDate]").val($("input[name=viewEndDate]").val());

    }

})


그래서 이것 저것 확인해 보니까 ifChecked 는 체크할때 아주 미세하게 interval이 있더라고.


ifChecked 는 체크할때의 액션인데 이때 iCheck 속성이 바로 check 로 바뀌는게 아니더라고..


그래서 해결한 방법이 정말 미세하게 interval을 주는 거였어.



소스에서 보면 setTimeout 을 써서 0.1초 후에 내가 원하는 이벤트를 발생시키는거지.


$("#equalViewDateChk").on("ifChecked", function(evt){

    var checked = evt.target.checked;

    var viewStartDate = $("input[name=viewStartDate]");

    if( $(viewStartDate).val() == "" ){

        var icheck = $(this);

        setTimeout(function() {

            alert("노출 기간 시작일을 입력해주세요.");

            $(icheck).iCheck('uncheck');

            $(viewStartDate).focus();

        }, 100);

    } else {

        $("input[name=useStartDate]").val($(viewStartDate).val());

        $("input[name=useEndDate]").val($("input[name=viewEndDate]").val());

    }

})

 



이렇게 하니 내가 원하는 이벤트가 완성되었음!


'Develope > Jquery' 카테고리의 다른 글

IE 에서 Map.values 대체하여 사용하기  (0) 2019.06.19
JS 글자 수 byte로 체크  (0) 2019.05.27

ER 마스터 잘 설치 됐으니 써봐야지


이클립스 실행해서 대충 일반 프로젝트 하나 만들고 신규 파일을 생성


File > New > Other.. 클릭



신규 파일명은 기본값이 newfile 임. 의미없음

파일이 저장될 폴더 선택


사용할 DB 선택(그렇다고 DB 커넥션을 해야하는건 아님)



DB 선택 후 Finish 누르면 다이어그램 생성할수 있는 화면이 뙇!!



이것저것 눌러보면 흔하게 사용한 ERWIN 과 별반 다르지 않은것 같음

아직은 차이를 모르겠으나 별다른 툴 사용없이 이클립스에서 바로 열수 있어서 편함


이클립스 마켓에 없음.


Help -> Install New Software.. 클릭



Add.. 버튼 눌러서 아래 처럼 써주고 OK 클릭



Name : ER Master

Location : http://ermaster.sourceforge.net/update-site/

 






체크 하고 Next 클릭




Install Details 화면 나오면 또 Next 클릭



라이센스 계약 조건에 동의 하냐.. 질문에 동의 클릭



Finish 누르면 이클립스 하단에 install 중인 프로그래스 바가 보임.



인증되지 않은 소프트웨어를 설치하고 있는데 계속 할꺼냐는 질문에 OK 누르고 계속 진행



그럼 또 이클립스 하단에 install 중인 프로그래스 바가 보일것임



다 끝나면 재시작 할꺼냐고 묻는 질문에 OK 누르면 자동으로 재시작 됨




설치 끝


+ Recent posts