반응형

자바스크립트에서 폼 데이터를 전송시에 입력값 검증을 하는 방법이다.


보통 폼 데이터를 submit(전송, 확인 버튼)을 할 때, 검증을 수행하게 한다.


<form action="aaa.html" method="POST" onsubmit="return formChk();">

<input id='aname' type="text" name="aname">


위와 같이 form에 onsubmit 이벤트에 검사 할 함수를 추가한다.

return은 onsubmit의 리턴값으로 formChk()의 반환값을 그대로 사용하게 한다.

리턴값이 false이면 submit을 취소하게 된다. 


<script>

function formChk() {

// to do : 입력값 검증

if ( $('#aname').val()=='' ) {

alert("input data!") ;

return false ;

}

return true;

}

위와 같이 입력값을  id로 찾을때는 jquery를 사용하여 변수에 접근하면 편리하다.

순수 js를 사용하려면 name으로 element를 찾아 접근하면 된다.

document.forms[0].aname.value

또는

document.getElementByName("aname").value


입력값 검증에서 입력값을 다시 받도록 할 때는 보통 포커스를 입력필드로 이동시킨다.



변수명이 길어지므로 간단하게 함수로 파라미터를 받아 처리하기도 한다.

function formCheck(frm) {

if ( frm.aname.value=="") {

alert("이름을 입력해주세요.") ;

frm.aname.focus() ;

return false ;

}

return true ;

}


<form name="myform" onsubmit="return formCheck(this);">

이렇게 사용한다.


+폼체크에서 많이 체크하는 루틴

var fVal = frm.aname.value;


수(integer) 범위 체크

if ( parseInt(fVal) < 8   || parseInt(fVal)>10 )


빈값 체크

if ( fVal=="" )








반응형



+ 이클립스 버그

+ javax.servlet을 못 찾을 때.

해당 프로젝트의 속성(config)에서 runtime server를 다시 추가하고,
라이브러리 우선 순위를 위로 올려준다. (주로 우선순위 문제이다.)


+ tomcat 서버 추가가 안 될 때.
It is a bug in Eclipse. I had exactly the same problem, also on Ubuntu with Eclipse Java EE Juno.

Here is the workaround that worked for me:

Close Eclipse
In {workspace-directory}/.metadata/.plugins/org.eclipse.core.runtime/.settings delete the following two files:
org.eclipse.wst.server.core.prefs
org.eclipse.jst.server.tomcat.core.prefs
Restart Eclipse

+ ADT Manager가 안보일때
Windows - customize perspective
tool bar visibility와 command groups avaliavility에 adroid sdk and avd manager를 체크한다.


+이클립스 로드시 'd:skin' 요소로 시작하는 부적합한 콘텐츠가 발견되었습니다... 라고 오류날때

오류 메시지에도 보이듯이, "Android Ware(시계같은 Wareable 장치 개발)" 에서 오류가 나는거니, 이거 다 지워 주면된다.
이건 "Android Ware" 의 버그로 알려져 있는데, 나의 경우는 필요가 없으니 지워 버린거고, 필요할 경우 재 설치하면 해결 된다고 한다.

device.xml 에서 "<d:skin>" 항목을 지워주기만 해도 된다는 얘기가 있기도 하다...

주로 삭제해야될 패키지 2개
Android wear arm eabi v7a system image ; 22 1
Android wear intel x86 atom system image ; 22 1



+ 이클립스 실행 실패시.
eclipse.ini 파일을 열고 아래에서 javaw 경로명을 맞추고 -vm 부분을 추가한다.  (주의! -vm 옵션은 반드시 -vmargs보다 위에 있어야 된다.)

-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20140116-2212
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
1024M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
1024m
--launcher.defaultAction
openFile
--launcher.appendVmargs

-vm
C:\Program Files\Java\jdk1.7.0_60\bin\javaw.exe
-vmargs
-Dosgi.requiredJavaVersion=1.7
-Xms512m


-Xmx1024m



반응형




+tomcat7


-주의 ; tomcat6에서는 war 배포시 서블릿에 대한 정의를 tomcat6에서는 web.xml에서 지정해주어야 한다.
그러나, tomcat7에서는 web.xml이나 코드내에 @WebServlet 지정자 둘 중에 하나만 지정해야 한다. 중복시, 웹앱이 실행이 되지 않을 수 있다.
/usr/tomcat7/logs/catalina.날짜.log 파일을 열어보면 알 수 있다.

-CentOS에서 java는 오라클 사이트에서 따로 구하지 않아도, 그냥 yum에서 jdk7 버전 깔고, 환경 설정만 해주면 된다.

: /etc/profile에 다음의 스크립트를 추가
# java7
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk.x86_64
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/*:.

# tomcat7
export CATALINA_HOME=/usr/tomcat7

export PATH=$PATH:$CATALINA_HOME/bin:$JAVA_HOME/bin

+ 시작 방식도 좀 다름
tomcat6에서는 service tomcat6 start/stop/restart 등으로 했으나, tomcat7에서는 

startup.sh start/stop  
shutdown.sh

아니면 서비스 스크립트 만들면 동일하게 사용 가능.



+ 서비스 데몬 등록 (부팅시 자동 시작)


# vi /etc/init.d/tomcat 를 실행하여 아래내용을 입력하자  (tomcat7 init.d script 검색)


#!/bin/sh
#
# Tomcat7 auto-start
#
# chkconfig: 2345 90 90
# description: Auto-starts tomcat7
# processname: tomcat7
# pidfile: /var/run/tomcat7.pid
case $1 in
start)
    sh /usr/tomcat7/bin/startup.sh
    ;;
stop)
    sh /usr/tomcat7/bin/shutdown.sh
    ;;
restart)  # 신뢰할 수 없으니 restart 는 사용하지 말 것.
    sh /usr/tomcat7/bin/shutdown.sh
    sh /usr/tomcat7/bin/startup.sh
    ;;
esac
exit 0   


chmod 755 /etc/init.d/tomcat
실행권한 설정

chkconfig --add tomcat


-참고; tomcat 서비스가 안 죽으면 java 프로세스를 죽이면 된다. 주의!!!!
위 restart 커맨드는 절대 신뢰하면 안 됨!!!!! 주의!!!! 가끔 포트를 잡은 상태로 서비스가 종료 될 수 있다. 서비스 시작이 address in use로 되어
실패될 수 있음 !!! 스크립트 변경 필요!!!!!



+ Recent posts