Programming/Java
Spring MVC - Form 테그라이브러리 사용 데이터 추가
파란크리스마스
2016. 11. 22. 21:47
728x90
컨트롤러 클래스에서 입력받은 객체 전달
modelMap.addAttribute("userinfo", new UserInfo()); 내용 추가
package com.iot.controller; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import com.iot.db.domain.UserInfo; import com.iot.db.service.UserInfoService; @Controller public class IotController { @Autowired private UserInfoService service; @RequestMapping(value = "/hello_world.iot", method = RequestMethod.GET) public String hello_world(ModelMap modelMap) throws Exception { // 사용자 목록 출력 List<UserInfo> userlist = service.listUserInfoFormData(); modelMap.addAttribute("userlist", userlist); // 사용자 추가용 객체 설정 modelMap.addAttribute("userinfo", new UserInfo()); return "/hello_world"; } }
JSP에 Form 테그 추가
참고 : 쉼, 그리고 망설임 없는 마침표. :: [toby의스프링] 13장 - 스프링 @MVC #3
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> Hello World <h1>사용자 조회</h1> <table border="1"> <c:forEach items="${userlist}" var="data" varStatus="loop"> <tr> <td>${data.user_id}</td> <td>${data.password}</td> <td>${data.name}</td> <td>${data.nickname}</td> </tr> </c:forEach> </table> <h1>사용자 추가</h1> <form:form id="dataForm" name="dataForm" modelAttribute="userinfo" action="user_add.iot" method="post"> <table border="1"> <tr> <td>사용자ID</td> <td> <form:input path="user_id"/> </td> </tr> <tr> <td>암호</td> <td> <form:input path="password"/> </td> </tr> <tr> <td>사용자이름</td> <td> <form:input path="name"/> </td> </tr> <tr> <td>별명</td> <td> <form:input path="nickname"/> </td> </tr> </table> <br/> <input type="submit"/> </form:form> </body> </html>
컨트롤러 클래스에 사용자 추가 메소드 생성
UserInfo 객체를 인자로 받음
// 사용자 추가 @RequestMapping(value = "/user_add.iot", method = RequestMethod.POST) public String user_add(UserInfo userinfo, ModelMap modelMap) throws Exception { service.insertUserInfo(userinfo); // 사용자 목록 출력 List<UserInfo> userlist = service.listUserInfoFormData(); modelMap.addAttribute("userlist", userlist); // 사용자 추가용 객체 설정 modelMap.addAttribute("userinfo", new UserInfo()); return "/hello_world"; }
서비스 클래스에 메소드 추가
public void insertUserInfo(UserInfo userInfo) { userInfoMapper.insertUserInfo(userInfo); }
Mapper 인터페이스에 메소드 추가
public void insertUserInfo(UserInfo userInfo);
Mapper XML에 Insert질의문 추가
<!-- insertUserInfo --> <insert id="insertUserInfo" parameterType="com.iot.db.domain.UserInfo" statementType="PREPARED"> insert into user_info( <trim suffixOverrides=","> <if test="user_id != null">user_id ,</if> <if test="password != null">password ,</if> <if test="name != null">name ,</if> <if test="nickname != null">nickname ,</if> </trim> ) values ( <trim suffixOverrides=","> <if test="user_id != null">#{user_id, jdbcType=VARCHAR} ,</if> <if test="password != null">#{password, jdbcType=VARCHAR} ,</if> <if test="name != null">#{name, jdbcType=VARCHAR} ,</if> <if test="nickname != null">#{nickname, jdbcType=VARCHAR} ,</if> </trim> ) </insert>
최종 IotController.java
package com.iot.controller; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import com.iot.db.domain.UserInfo; import com.iot.db.service.UserInfoService; @Controller public class IotController { @Autowired private UserInfoService service; @RequestMapping(value = "/hello_world.iot", method = RequestMethod.GET) public String hello_world(ModelMap modelMap) throws Exception { // 사용자 목록 출력 List<UserInfo> userlist = service.listUserInfoFormData(); modelMap.addAttribute("userlist", userlist); // 사용자 추가용 객체 설정 modelMap.addAttribute("userinfo", new UserInfo()); return "/hello_world"; } // 사용자 추가 @RequestMapping(value = "/user_add.iot", method = RequestMethod.POST) public String user_add(UserInfo userinfo, ModelMap modelMap) throws Exception { service.insertUserInfo(userinfo); // 사용자 목록 출력 List<UserInfo> userlist = service.listUserInfoFormData(); modelMap.addAttribute("userlist", userlist); // 사용자 추가용 객체 설정 modelMap.addAttribute("userinfo", new UserInfo()); return "/hello_world"; } }
최종 UserInfoMapper.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.iot.db.mapper.UserInfoMapper"> <!-- insertUserInfo --> <insert id="insertUserInfo" parameterType="com.iot.db.domain.UserInfo" statementType="PREPARED"> insert into user_info( <trim suffixOverrides=","> <if test="user_id != null">user_id ,</if> <if test="password != null">password ,</if> <if test="name != null">name ,</if> <if test="nickname != null">nickname ,</if> </trim> ) values ( <trim suffixOverrides=","> <if test="user_id != null">#{user_id, jdbcType=VARCHAR} ,</if> <if test="password != null">#{password, jdbcType=VARCHAR} ,</if> <if test="name != null">#{name, jdbcType=VARCHAR} ,</if> <if test="nickname != null">#{nickname, jdbcType=VARCHAR} ,</if> </trim> ) </insert> <!-- listUserInfo --> <select id="listUserInfo" parameterType="map" resultType="com.iot.db.domain.UserInfo"> select * from user_info </select> </mapper>
728x90