gksdnf0
80
2020-06-04 01:15:42
6
417

Spring에서 jstl값 controller로 넘기기


<form action="/" method="post" enctype="multipart/form-data">

  <c:forEach items="${list }"  var = "list">

    <input type="text" name="${list}" />

  </c:forEach>

  <button type="submit">작성</button>

</form>


만약 ${list}값이 asd고

이렇게 컨트롤러에 넘기면 

컨트롤러에서는 req.getParameter("asd");

이렇게 받으려하는데 계속 null만 출력됩니다 ㅠㅠㅠㅠ

해결방법좀 알려주세요 ㅠㅠㅠㅠ

0
  • 답변 6

  • Kioni93
    187
    2020-06-04 02:04:33

    컨트롤러 코드 올려주세요

  • 즈루시
    2020-06-04 02:33:31

    화면에 뿌려진거 개발자 도구로 찍어보시고

    폼전송할때 값 추적해보세요.

    1. 내가 원하는 이름으로 출력, 2.내가 원하는 이름으로 폼 전송이 되는지 검증하시면 되요.

  • 으머애
    248
    2020-06-04 03:03:46

    List를 foreach 반복문으로 출력하시는데 예를 들어서 list에 값이 “asd” 3개가 있다면  같은 form 태그 안에 name이 “asd”인 인풋태그 3개가 되는데 이게 문제 아닌가 싶습니다

  • 오후
    2k
    2020-06-04 10:20:17


     <c:forEach items="${list }"  var = "list">
        <input type="text" name="${list}" />
      </c:forEach>
    
    >>
    
    
    <input type="text" name="asd" />
    <input type="text" name="asd" />
    <input type="text" name="asd" />
    
    
    일경우에는   String[] asd  = request.getParameterValues("asd");


  • 반역이론
    251
    2020-06-04 11:47:02

    foreach는 제대로 돌아가던가요?

    input에 잡히는 name="뭐뭐" 이랑 getparameter("뭐뭐")의 뭐뭐가 완벽히 일치해야 제대로 불러올텐데..

    소스만 놓고봐서는 name에 뭔가의 텍스트가 들어가는게 아니라 ${list}의 주소값이 찍히고 있을거같은느낌이 드네요..

    ${list}가 (key, value)형식이라면 ${list.key}해줘야되고 (index, value)라면 ${list.index}를 해줘야겠죠..

    느낌이 딱 스프링쓰시는거 같은데 ${list}가 어떤 List 형식을 갖는지 확인하셔서 다시 진행해보세요.

  • 반역이론
    251
    2020-06-04 11:52:53

    그리고 <c:forEach items="${list }"  var = "list"> 에서 ${list} 랑 var="list"를 똑같이 해서 쓰지마세요.

    나중 가면 많이 헷갈립니다.

    컨트롤러에서 뷰로 쏘는 List는 ${ReturnList} 라던지 var= "list"처럼 for문을 위해 쓰는 건 resultList라던지..

    현업에 가면 여기에 쓰이는건 회사내에 고정된 규칙으로 지정을 해서 쓰긴 하는데 똑같은 이름으로 쓰진 않습니다.

    헷갈리거든요..

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