강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

박상훈님의 프로필 이미지
박상훈

작성한 질문수

윤재성의 만들면서 배우는 Spring MVC 5

58강 글 읽는 페이지 구성하기

board_info_idx 관련된 400에러 코드

작성

·

886

0

HTTP 상태 400 – 잘못된 요청


타입 상태 보고

메시지 Required int parameter 'board_info_idx' is not present

설명 클라이언트 오류로서 인지된 어떤 문제로 인하여, 서버가 해당 요청을 처리할 수 없거나, 처리하지 않을 것입니다. (예: 잘못된 요청 문법, 유효하지 않은 요청 메시지 framing, 또는 신뢰할 수 없는 요청 라우팅).


Apache Tomcat/9.0.36

에러 코드이구요 url 확인해보면 read?뒤에 값들은 잘 들어오는데 board_inf_idx에서 %20이 붙기는 하네요.

 디비 연결도 잘 되고 디비에 저장도 됩니다. 글쓰기 누를시에 이렇게 에러가 뜨는데 이유를 모르겠습니다

requestparam 부분에서 board_info_idx를 못받아왔나 싶어서 확인해도 잘 들어가 있는거 같구요 ㅠㅠ  도와주시면 감사하겠습니다. 

컨트롤러 소스 입니다.

@GetMapping("/read")

public String read(@RequestParam("board_info_idx") int board_info_idx,

   @RequestParam("content_idx") int content_idx,

   Model model) {

model.addAttribute("board_info_idx", board_info_idx);

ContentBean readContentBean = boardService.getContentInfo(content_idx);

model.addAttribute("readContentBean", readContentBean);

return "board/read";

}

@GetMapping("/write")

public String write(@ModelAttribute("writeContentBean") ContentBean writeContentBean,

@RequestParam("board_info_idx") int board_info_idx) {

writeContentBean.setContent_board_idx(board_info_idx);

return "board/write";

}

@PostMapping("/write_pro")

public String write_pro(@Valid @ModelAttribute("writeContentBean")

ContentBean writeContentBean, BindingResult result) {

if(result.hasErrors()) {

return "board/write";

}

//이 빈에는 새로 작성된 idx값이 들어오게 된다. (nextval로 한개가 증가된 상태)

boardService.addContentInfo(writeContentBean);

return "board/write_success";

}

 jsp 소스입니다.

<div class="container" style="margin-top:100px">

<div class="row">

<div class="col-sm-3"></div>

<div class="col-sm-6">

<div class="card shadow">

<div class="card-body">

<form:form action='${root }board/write_pro' method='post'

modelAttribute="writeContentBean" enctype="multipart/form-data">

<form:hidden path = "content_board_idx"/>

<div class="form-group">

<form:label path="content_subject">제목</form:label> 

<form:input path="content_subject" class='form-control'/>

<form:errors path='content_subject' style='color:red'/>

</div>

<div class="form-group">

<form:label path="content_text">내용</form:label>

<form:textarea path="content_text"  class="form-control" rows="10" style="resize: none"/> 

<form:errors path='content_text' style='color:red'/>

</div>

<div class="form-group">

<form:label path="upload_file">첨부이미지</form:label>

<form:input type="file" path='upload_file'  class="form-control" accept="image/*"/>

</div>

<div class="form-group">

<div class="text-right">

<form:button class='btn btn-primary'>작성하기</form:button>

</div>

</div>

</form:form>

</div>

</div>

</div>

<div class="col-sm-3"></div>

</div>

</div>

서섹스 소스입니다.

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<c:set var = 'root' value='${pageContext.request.contextPath }/'/>

<script>

alert('저장되었습니다')

location.href = '${root}/board/read?board_info_idx =${writeContentBean.content_board_idx}&content_idx=${writeContentBean.content_idx}'

</script>

답변 1

0

소프트캠퍼스님의 프로필 이미지
소프트캠퍼스
지식공유자

%20 는 띄어쓰기를 의미합니다. 주소를 작성해주실 때 띄어쓰기가 없도록 해주세요

박상훈님의 프로필 이미지
박상훈

작성한 질문수

질문하기