반응형

AJAX에서 받은 한글 텍스트가 깨져서 ???로 나옴 

return한 값은

"로그인 성공" 이라는 텍스트 

캐릭터셋과 페이지 인코딩 모두 utp-8

 

Controller 메서드 @RequestMapping란에

produces = "application/text; charset=UTF-8"

 

를 추가해주면 된다. 

반응형
반응형

${board.boardType} 이라는 EL을

${codeMap.name}이라는 EL의 name자리에 넣고 싶었다.

 

 

결론 : name 자리에 대괄호를 이용하여 el을 넣으면 된다. 

${codeMap[board.boardType]}

안에 들어가는 EL은 바깥에 ${}가 있으므로 필요없다고 한다. ^^ 

 

마찬가지로 JSON데이터 호출 시 

data : {

"list":[{"boardType":"a04"},{"boardType":"a02"},{"boardType":"a03"}]
"codeMap":{"a02":"Q&A","a01":"일반","a04":"자유","a03":"익명"}

}

data.list[0].boardType 는  a04 

data.codeMap.a04 는 "자유" 인데,

data.list[0].boardType

data.codeMap.a04 의 "a04"자리에 넣고싶은 경우 

data.codeMap[data.list[i].boardType]

대괄호로 감싸면 됨. 

 

 

반응형
반응형

 

* checkbox 요건

- [전체선택] 클릭 시 하위 checkbox 모두 체크
- [전체선택] 클릭 시 하위 checkbox 모두 체크 해제
- 하위 checkbox 모두 체크 시 [전체선택] 체크
- 하위 checkbox 하나라도 뺄 시 [전체선택] 체크해제

전체선택

 

checkbox HTML

<table>
  <tr style="background:grey">
    <td>
      <input type="checkbox" id="checkAll" onclick="checkAllClick()"> 전체선택 
    </td>
  </tr>
  <tr>
    <td>
      <input type="checkbox" name="checkedIdx" class="checktype" value="1" onclick="checkBoxValueChanged()">
    </td>
  </tr>
  <tr>
    <td>
      <input type="checkbox" name="checkedIdx" class="checktype" value="2" onclick="checkBoxValueChanged()">
    </td>
  </tr>
  <tr>
    <td>
      <input type="checkbox" name="checkedIdx" class="checktype" value="3" onclick="checkBoxValueChanged()">
    </td>
  </tr>
  <tr>
    <td>
      <input type="checkbox" name="checkedIdx" class="checktype" value="4" onclick="checkBoxValueChanged()">
    </td>
  </tr>
</table>

 

 Javascript 로 checkbox 이벤트 만들기

const checkBoxes = document.getElementsByName('checkedIdx');

//[전체선택] 클릭 시 하위 checkbox 모두 체크 또는 체크 해제
function checkAllClick(){
  if(document.getElementById('checkAll').checked){
    for(var i=0;i<checkBoxes.length;i++){
      checkBoxes[i].checked = true;
    }
  }else{
    for(var i=0;i<checkBoxes.length;i++){
      checkBoxes[i].checked = false;
    }
  }
}

//하위 checkbox 체크 여부에 따른 [전체선택] checkbox 체크 변경
function checkBoxValueChanged(){
  var checkedCnt = 0;
  for(let i=0; i<checkBoxes.length;i++){
    if(checkBoxes[i].checked){
      checkedCnt ++;
    }
  }
  if(checkedCnt == checkBoxes.length){
    document.getElementById('checkAll').checked = true;
  }else{
    document.getElementById('checkAll').checked = false;
  }
}

 

jquery로 checkbox 이벤트 만들기

//[전체선택] 클릭 시 하위 checkbox 모두 체크 또는 체크 해제
$('#checkAll').click(function(){ 
    if($('#checkAll').is(':checked')){ 
        $('.checktype').prop("checked",true); 
    }else{ 
        $('.checktype').prop("checked",false); 
    } 

});


//하위 checkbox 체크 여부에 따른 [전체선택] checkbox 체크 변경
$('.checktype').click(function(){ 
   if($('input[class=checktype]:checked').length == $('input[class=checktype]').length){ 
       $('#checkAll').prop("checked",true); 
    }else{ 
       $('#checkAll').prop("checked",false); 
    } 
});

 

반응형
반응형

VO 객체 두 개를 한 쿼리로 어떻게 넘겨주나 찾다가 map을 이용하면 된다는 걸 알았음

컨트롤러에서 Hashmap 생성 및 put으로 Vo객체 put

 

Mybatis

map으로 썼던 경우도 있었는데 hashmap으로 쓰니 되더라. 무슨차이인지는 모르겠다.

parameterType="hashmap"

Vo 파라미터에 대한 접근은 #{Vo이름.파라미터이름}

반응형
반응형

java.lang.IllegalStateException : Optional int parameter is present but cannot be translated into a null value due to being declared as a primitive type. Consider declaring it as object wrapper for the corresponding primitive type.

 

 

ajax 사용 시 data 타입을 이상하게 넣어서 그렇슴

ajax data 부분엔 스트링이나 맵 형식으로 들어가면 되는데 이상하게 넣어서 그랬음

 

data에 16이라는 데이터를 넣었는데 Controller에서 받지 못함. 

Controller에서 boardNum을 확인해보면 0이 나온다.

ajax data를 잘못넣음.

 

 

형식으로 넘기니 잘 넘어간다.~~ 

 

콤마가 있어야함..

{데이터 이름 : '값', 데이터 이름 : '값' }

반응형
반응형

 

spring 프레임 워크 사용

위와 같이 컨트롤러에서 update 실행하고 콜백함수도 정상값, DB업데이트도 되는데

자꾸 에러로 넘어가서 수정실패가 뜨는거임 ㅠ 

위는 jsp 쪽 ajax 코드.

error와 success의 기준이 뭘까..

DB 업데이트는 되는데 error 가 뜨는경우 리턴되는 dataType이 맞지 않아 그렇다고 함.

컨트롤러에서 콘솔로 찍힌 값을 보면 

JSON이 맞는데

return 할 때 문제가 있었던 거임 

@ResponseBody 를 붙이지 않아서 그렇슴.

 

@ResponseBody * return 값에 prefix와 suffix가 붙지 않음
* ajax 호출 시 정상적인 json 데이터 반환을 위해 사용함

 

반응형
반응형

contextPath

EL 표현식 사용 시 ${pageContext.request.contextPath}
JSP에서 스크립트 사용 시 <%=request.getContextPath() %>

프로젝트 Path만 가져온다

실제 주소 예시 가져오는 값
http://localhost:8080/mvcMain/write.do /mvcMain
https://localhost:8080/card/main.do /card

 

requestURL

EL 표현식 사용 시 ${pageContext.request.requestURL}
JSP에서 스크립트 사용 시 <%=request.getRequestURL() %>

프로젝트 + 파일경로 
WEB-INF의 실제 JSP 경로를 가져옴

실제 주소 예시 가져오는 값
http://localhost:8080/mvcMain/write.do http://localhost:8080/mvcMain/WEB-INF/views/write.jsp
https://localhost:8080/card/main.do http://localhost:8080/card/WEB-INF/views/MainPage.jsp

 

requestURI

EL 표현식 사용 시 ${pageContext.request.requestURI}
JSP에서 스크립트 사용 시 <%=request.getRequestURI() %>

localhost뒤에 프로젝트 이름부터 끝까지 가져옴

실제 주소 예시 가져오는 값
http://localhost:8080/mvcMain/write.do mvcMain/WEB-INF/views/write.jsp
https://localhost:8080/card/main.do card/WEB-INF/views/MainPage.jsp
반응형
반응형

Spring Framework에서 Controller인데 

keyfield라는 String 변수와 ""를 비교하는데 죽어도 안먹는거임...

분명히 텍스트가 담겨있는데 자꾸 if에 진입하질 않나..

equals 문제였음

문자열을 비교할땐 equals를 쓰는 습관을 들이자..

 

 

==

* 연산자
* 두 대상의 주소값을 비교함
* 같지 않다는 !=

equals()

* 메소드
* 두 대상의 내용을 비교함
* 같지 않다는 !변수.equals

 

 

 

반응형
반응형

주석처리를 했는데도 웹 페이지에 에러가 뜨는거임...

 

왜 자꾸 코드를 읽지.. 했는데

<%--로 바꾸면 소스보기에도 안 나오므로 해결 ^^~

반응형

'코딩 관련 > JSP 관련' 카테고리의 다른 글

[JSTL] JSTL 용법 / JSTL core / JSTL fmt / jstl function  (0) 2023.07.18
[JSP] EL 안에 EL 넣기  (0) 2020.09.24
반응형

 

이런 에러인 경우 ㄹㅇ 따옴표 같은게 빠진경우.

행: [4], 열: [27] 에 인용부호가 빠졌다는 소리. 

그럴리가 없는데? 하면서 4번째 줄 안 봤는데 알고나니 4번째줄 에러 맞았음.

Core 라이브러리 taglib디렉티브 url에 따옴표가 빠졌었음 

 

수정수정...

반응형

+ Recent posts