html에서 db 저장이 안됩니다.

조회수 1411회

***추가 이미지

insert를 하면 부분만 되고 null값으로 넘어오는 값들이 있습니다.

테이블 :

CREATE TABLE goods(
rnum INT AUTO_INCREMENT PRIMARY KEY,
deal_code VARCHAR(15) ,
category_code VARCHAR(15)  ,
goods_name VARCHAR(30) ,
price INT,
sell_start DATE ,
sell_end DATE ,
goal_num INT,
content VARCHAR(4000),
summary VARCHAR(300) ,
sell_num INT ,
success_tf VARCHAR(15),
id VARCHAR(15),
image VARCHAR(4000));

Goods.xml :

<mapper namespace="kr.or.connect.mybatis.goods">
    <resultMap type="Goods" id="goodsResult">
        <result property="rnum" column="rnum"/>
        <result property="dealCode" column="DEAL_CODE"/>
        <result property="categoryCode" column="CATEGORY_CODE"/>
        <result property="goodsName" column="GOODS_NAME"/>
        <result property="price" column="PRICE"/>
        <result property="sellStart" column="SELL_START"/>
        <result property="sellEnd" column="SELL_END"/>
        <result property="goalNum" column="GOAL_NUM"/>
        <result property="content" column="CONTENT"/>
        <result property="summary" column="SUMMARY"/>
        <result property="sellNum" column="SELL_NUM"/>
        <result property="successTf" column="SUCCESSTF"/>
        <result property="id" column="ID"/>
        <result property="image" column="IMAGE"/>
    </resultMap>

    <insert id="insert" parameterType="GOODS">
        INSERT into goods values (#{rnum}, #{dealCode}, #{categoryCode}, #{goodsName}, #{price}, NOW(), #{sellEnd}, #{goalNum}, #{content}, #{summary}, #{sellNum}, #{image}, #{successTf}, #{id});
    </insert>

dto(get, set도 만들었습니다.) :

    private int rnum;
    private String dealCode;        // f.k
    private String categoryCode;    // f.k
    private String goodsName;
    private int price;
    private Date sellStart;
    private Date sellEnd;
    private int goalNum;
    private String content;
    private String summary;
    private int sellNum;
    private String successTf;
    private String id;              // f.k
    private String image;

dao :

@Repository("GoodsDao")
public class GoodsDaoImpl implements GoodsDao{
    @Autowired
    private SqlSessionTemplate sqlSession;
    private String ns = "kr.or.connect.mybatis.goods";

    @Override
    public void insert(Goods goods) {
        sqlSession.insert(ns+".insert", goods);
    }
}

service :

@Override
    public void insert(Goods goods) {
        goodsDao.insert(goods);
    }

controller :

    @PostMapping(path="/portfolio")
    public String create(@ModelAttribute Goods goods,
                            HttpServletRequest request) {
        goodsService.insert(goods);

        return "portfolio";
    }

jsp:

input type="text" id="title" name="goodsName"  placeholder="상품명을 입력하세요"
                                    style="border-width:0px 0px 5px 0px; border-color : #8C8C8C; 
                                    width:650px; height: 45px; font-size: 20pt; color: #8C8C8C;"/>

textarea id="summary" name="summary" placeholder="간략한 소개를 입력해 주세요" style="height: 130px; width:430px;"></textarea></td>

textarea id="summernote" name="content"></textarea>

// 이렇게 3개는 입력이 됩니다.

input type="date" class="form-control" name="sellEnd">

input name = "goalNum" value='' id="goalNum" type="number" class="form-control" />

// 이렇게 2개는 insert가 안됩니다.

db도 date고 html에서도 date로 만들었으니 따로 변환해주는 과정이 필요없지 않나요?? 입력이 안되는 값들을 text로도 변경해서 테스트해봤지만 text도 받아오지 못합니다. 아시는 분 댓 달아주세요ㅠ
설명이 부족하면 더 추가하겠습니다.

  • 요청본문 자체에는 해당 필드들 값이 어떻게 찍히나요? 엽토군 2019.8.5 22:51
  • rnum은 1부터 하나씩 증가하고 있고, goods_name, content, summary는 입력한대로 들어가구요 sell_start는 입력한 시간, price, delivery_charge, goal_num, sell_num은 0, 나머지는 null로 들어가고 있습니다. A-YEYE 2019.8.6 00:18
  • 아뇨 DB에 들어가는거 말고 HTTP 요청이요. 폼 제출 시 form data 어떻게 찍히는지 확인해봐 주시겠어요? 참고: https://redballs.tistory.com/entry/Google-Chrome-Nework-%ED%83%AD-%EC%82%B4%ED%8E%B4%EB%B3%B4%EA%B8%B0 거기서도 null 이 찍힌다면 그건 다른 문제거든요. 엽토군 2019.8.6 08:36
  • header눌러서 Form Data보면 되나요?? 누르면 이렇게 나옵니다.db에 저장된 것들만 나오는데 그럼 다른 것들은 null인가요?? goodsName: 상품 summary: 소개 content: 내용 files: A-YEYE 2019.8.6 09:59
  • 음.... 좀 잘 올려주세요... (이 글 수정 → 내용 복붙 아니면 스샷) 일단 딱보기에는 애초에 요청 자체가 안넘어가고 있는것같은데 그렇다면 multipart 문제 같네요. 엽토군 2019.8.6 10:54
  • 캡처올렸습니다. multipart도 찾아보겠습니다... A-YEYE 2019.8.6 11:51

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    파일업로드가 포함된 폼 같은데요 그럴 경우에는 다음과 같이 폼태그를 잡아주셔야 합니다.

    <form action="어쩌구저쩌구" method="post" enctype="multipart/form-data">
    

    이렇게 하고 나서 다시 Form Data 어떻게 넘어오는지 개발자도구로 확인해 주세요. 애초에 파일업로드 자체도 실패하고 있을 것 같은데요.

    • 감사합니다. 에러가 많이 생겨서 늦게 결과를 확인하게 되어 감사인사가 늦었습니다. 덕분에 해결했습니다 감사합니다. A-YEYE 2019.8.8 00:20

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)