본문 바로가기
공부하는/spring

리스트형식 파라미터 받기 (form, ajax)

by fromkong 2023. 7. 13.

기본적인 것도 맨날 검색해서 찾는 인생...언제 청산하지?

1. <form> post 방식

- list를 구성하는 파라미터의 name을 맞춰준다.

[HTML]

<form id="fileForm" action="/cmm/main/regFile.do" method="post">
	<div>
		<ul>
			<li><input type="text" name="arrayList" value="배열 포스트 테스트list1"/></li>
			<li><input type="text" name="arrayList" value="배열 포스트 테스트list2"/></li>
		</ul>
		<button type="button" onclick="fn_submit();">전송</button>
	</div>
</form>

 

--> 결과 vo.getArrayList()을 통해 값을 받아 올 수 있다.

[VO]

private List<String> arrayList = new ArrayList<String>();

public List<String> getArrayList() {
	return arrayList;
}

public void setArrayList(List<String> arrayList) {
	this.arrayList = arrayList;
}

[Controller]

@RequestMapping(value = "/cmm/main/regFile.do")
	public String getMgtMainPage(ContentTestVO paramVO , RedirectAttributes re) throws Exception{
		List<String> paramList = paramVO.getArrayList();
        paramVO.setArrayList(paramList); //값 확인

		int id = idgenService.getNextIntegerId();
		paramVO.setId(id);
		re.addAttribute("id", id);

		bbsMngService.insertFile(paramVO);
		return "redirect:/cmm/main/fileDetail.do";
	}

List<String> 형식으로 vo.getArrayList()을 통해 값을 받아 올 수 있다.

2. ajax post 방식

[JS]

$('#submitBtn').on('click',function(){ //전송버튼 클릭이벤트 실행
		var arrayList = 'test1,test2,test3'; // 테스트 데이터 (리스트 형태)
		$.ajax({
			type: "POST",
			url: "/cmm/main/ajaxReg.do",
			data: {
	      	 	"arrayList" : arrayList
			},
			dataType: 'json',
			cache: false,
		    error : function(error) {
		    	console.log(error);
		    	alert('오류가 발생했습니다. 다시 시도해 주세요.');
		    },
		    success : function(data) {
		    	if(data){
		    		console.log(data);
		    	}
		    },
		    complete : function() {
		    }
		});
	});

[VO]

private List<String> arrayList = new ArrayList<String>();

public List<String> getArrayList() {
	return arrayList;
}

public void setArrayList(List<String> arrayList) {
	this.arrayList = arrayList;
}

[Controller]

@RequestMapping(value = "/cmm/main/ajaxReg.do")
	public ModelAndView getAjaxReg(ContentTestVO paramVO) throws Exception{
		/* VO로 받음 */
		//리스트 문자열형식으로 파라미터 받음
		List<String> paramList = paramVO.getArrayList();
		System.out.println(paramList); //값 확인
		
		ModelAndView mv = new ModelAndView("jsonView"); //jsonView로 결과 리턴
	    mv.addObject("result",paramVO);
	    
	    //맵핑한 파라미터 다시 리턴
	    return mv;
}

 

 

 

++ 추가 ++

jsonview 세팅

//pom.xml에 추가
<!-- JSON 라이브러리 -->
	<dependency>
		<groupId>net.sf.json-lib</groupId>
		<artifactId>json-lib</artifactId>
        <version>2.3</version>
        <classifier>jdk15</classifier>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.5.1</version>
    </dependency>
//*Servlet.xml에 추가
	<!-- jsonView --> 
	<bean id="beanNameResolver" class="org.springframework.web.servlet.view.BeanNameViewResolver" p:order="0" />
	<bean id="jsonView" class="org.springframework.web.servlet.view.json.MappingJackson2JsonView">
	    <property name="contentType" value="application/json;charset=UTF-8"></property>
	</bean>

'공부하는 > spring' 카테고리의 다른 글

Spring sql 로그 출력하기  (0) 2021.02.04
Spring+SockJS+STOMP 웹 소켓 구현/채팅 만들기  (0) 2021.02.02

댓글