눈개
116
2020-12-11 04:46:37 작성 2020-12-11 04:47:39 수정됨
4
263

[jquery] .html() 질문드립니다 ㅠ


안녕하세요! 
제이쿼리를 통해 .html()로 <p>에 아래와같은 값을 뿌려주려고 하고있습니다.


function get_data(item){
  var seq = $(item).attr('id');
		
  console.log("seq = " + seq);
		
  if(seq != null && seq != ""){
	$("p").html("${detailMonitoringBoard[" + Number(seq) +"].get_datetime}");
  }
}
	


그런데 java.lang.NumberFormatException: For input string: " + seq + " 에러가 발생하였고

$("p").html("${detailMonitoringBoard[0].get_datetime}");

seq대신 임의로 숫자값을 넣으면 의도한 값이 잘 나타고있습니다.

seq 가 String으로 인식되어 이런 문제가 생기는것같은데 해결방법을 찾을 수 없어 OKKY선배님들께 질문드리게되었습니다 ㅠㅠㅠ 혹시 같은 문제를 해결하신 분이 계실까요?



0
  • 답변 4

  • daywalker
    1k
    2020-12-11 09:04:35
    $("p").html("${detailMonitoringBoard[seq].get_datetime}");
    -1
  • HJOW
    2k
    2020-12-11 09:19:15 작성 2020-12-11 09:29:23 수정됨

    지금의 오류는 자바쪽 오류입니다.


    okky에서, 내가 짠 코드가 서버에서 동작하는 코드인지 사용자의 PC에서 동작하는 코드인지 헷갈려 하시는 분들이 아직도 많습니다.

    일단 서버-클라이언트 개념부터 공부해야 합니다.


    물론 공부했다면

    $("p").html("${detailMonitoringBoard[" + Number(seq) +"].get_datetime}");

    이건 원천적으로 불가능한 코드라는 걸 단박에 알 수 있습니다.




    ${} <-- 이러한 표현식은 EL이라고 합니다. jsp의 기능이므로 "서버"에서 처리가 됩니다.

    사용자의 웹 브라우저는 저 내용을 아예 볼 수 없고 대신 이미 처리된 결과물이 저 자리에 들어가 있는 상태로 받게 됩니다.



    자바스크립트 코드는 사용자의 웹 브라우저에 소스가 도착한 이후 사용자의 PC에서 구동됩니다.



    저 오류는 jsp 처리 과정에서 서버에서 발생한 오류입니다. 서버(WAS)는 자바스크립트 코드를 아예 처리할 수 없습니다. 애초에 처리대상도 아니고.

    var seq = $(item).attr('id') <-- 이 자체를 서버는 처리대상으로 인식하지 않습니다.

    저 코드에서 서버가 처리할 대상은 하나입니다.



    ${detailMonitoringBoard[" + Number(seq) +"].get_datetime}


    이부분만 처리하고 웹브라우저로 넘기면 서버역할은 끝나는 것이죠.

    여기서 " + Number(seq) + " <-- 이 자체를 문자열로 인식한겁니다. 그래서 숫자 넣을 자리에 왜 문자열을 넣었느냐고 오류를 내뿜은거죠.




    자 이제 어떻게 해결해야 하나 봅시다.

    저 seq를 서버에서 저 자리에 넣어야  하는거겠죠.

    그런데 저 seq 값은 사용자의 웹브라우저에서 자바스크립트 처리과정에서 나타나는 겁니다.

    그러면 어떻게 해야될까요. 서버로 저걸 보내야겠죠.




    자바스크립트 처리 결과를 서버가 받아서 다시 처리해야 되는 상황이라면

    반드시 서버로 그 값을 전송하는 과정이 필요합니다. AJAX를 쓰든 form submit을 쓰든 fetch를 쓰든 말이죠.

  • 눈개
    116
    2020-12-12 21:36:49

    HJOW 님 안녕하세요!
    부족한 질문에 친절한 답변과 설명 감사합니다.
    질문을 드리면서도 무엇을 몰라 이런 문제가 발생했는지 깨닫지 못하고있었는데
    답변주신 내용을 읽어보며 서버와 클라이언트의 개념이나
    jsp의 작동순서를 확실하게 이해하지 못하고있다는걸 알게되었습니다.
    답변주신 내용을 중점적으로 학습해서 문제 해결해보도록 하겠습니다! 감사합니다!  

  • 눈개
    116
    2020-12-15 13:26:46

    * 해당 문제는 ajax통신으로 해결하였습니다.

  • 로그인을 하시면 답변을 등록할 수 있습니다.