복붙노트

[SPRING] 스프링의 동적 폼

SPRING

스프링의 동적 폼

스프링 폼을 사용하여 동적 폼을 만들려고합니다. 기본적으로 양식에 학습 활동이라는 제목이 붙어 있으며 그 아래에 "하나 이상의 학습 활동 추가"라는 버튼이 있습니다. 이를 통해 사용자는 하나 이상의 학습 활동을 추가 할 수 있습니다. 나는 그가 원하는만큼 추가 할 수 있기를 바랍니다.

나는 분명히 내가 생각한 첫 번째 해결책으로 오류가 발생했습니다 전에 이것을 시도하지 않았습니다. 나는 실제로 내가 한 일이 실수를 일으키지 만 단지 내가하려고하는 것을 집으로 운전한다고 느끼는 느낌이 들었다. 여기에 코드가있다 :

<script language="javascript">
 fields = 0;
 function addInput() {
      document.getElementById('text').innerHTML += "<form:input path='activity[fields++].activity'/><br />";
 }

<div id="text">
  <form:form commandName="course">
   Learning Activity 1 
   <form:input path="activity[0].activity"/>
    <input type="button" value="add activity" onclick="addInput()"/>
    <br/><br/>
   <input type="submit"/>
  </form:form>  
  <br/><br/>
 </div>

해결법

  1. ==============================

    1.자바 스크립트 내에서
    을 사용할 수 없습니다. 왜냐하면 서버 측에서 실행되는 JSP 태그가 있기 때문입니다.

    자바 스크립트 내에서 을 사용할 수 없습니다. 왜냐하면 서버 측에서 실행되는 JSP 태그가 있기 때문입니다.

    그러나 HTML 입력이 Spring 명령 객체의 필드에 바인딩되는 방법에 대해서는 전혀 이상한 것이 없습니다. 그것은 단지 이름을 기반으로합니다. 그래서 귀하의 자바 스크립트에 새로운 <입력 유형 = "텍스트"이름 = "활동 [1]. 활동"> (예를 들어, 분명히 인덱스를 증가시킬 것입니다).

    좀 더 복잡한 컨트롤을 위해 사용했던 또 다른 옵션은 기존 컨트롤 (Spring 폼 : input 태그를 사용하여 생성 된)의 HTML을 가져 와서 그것을 복제하여 인덱스를 증가 된 숫자로 대체하는 것입니다. jQuery를 사용하면 훨씬 쉽게 얻을 수 있습니다.

    추가 편집 : 문제를 일으킬 수있는 한 가지 문제가 있습니다. 새 입력란을 외부 div 끝에 추가하면 ( 'text') 양식 태그 안에 있지 않습니다. 그것은 작동하지 않습니다.

  2. ==============================

    2.은 JSP 태그입니까? 그렇다면 DOM에 노드를 추가하는 클라이언트 측 Javascript는 효과가 없습니다. 서버 측 JSP 엔진이이를 해석하지 않기 때문입니다.

    은 JSP 태그입니까? 그렇다면 DOM에 노드를 추가하는 클라이언트 측 Javascript는 효과가 없습니다. 서버 측 JSP 엔진이이를 해석하지 않기 때문입니다.

    Javascript는 원시 HTML 및 DOM (예 : 요소 추가)으로 작업해야합니다.

  3. from https://stackoverflow.com/questions/1439044/dynamic-forms-in-spring by cc-by-sa and MIT license