POST 입력을 위한 Admin 컨트롤러 추가
NoticeController.java
package com.newlecture.web.controller.admin.board;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller("adminNoticeController")
@RequestMapping("/admin/board/notice/")
public class NoticeController {
@RequestMapping("list")
public String list() {
return "";
}
@RequestMapping("reg")
@ResponseBody
public String reg() {
return "reg";
}
@RequestMapping("adit")
public String adit() {
return "";
}
@RequestMapping("del")
public String del() {
return "";
}
}
POST 입력
form태그를 통한 값 전달 시 checkbox, radio, textbox의 값을 전달할 경우 서버에서 처리되는 방법
사용자 입력값을 어떻게 넘겨받는지 알아보기
textbox 입력
html 파일 실행
실행할 경우 /static을 빼고 요청해야 된다.
reg.html 요청하면 컨트롤러가 요청되게 된다. -> 이름을 바꿔준다 reg1.html
컨트롤러의 reg에 전달하기 위해 action="reg"
reg1.html
컨트롤러에서 전달 값을 파라미터로 받고 다시 리턴
noticeController.java
noticeController.java
package com.newlecture.web.controller.admin.board;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller("adminNoticeController")
@RequestMapping("/admin/board/notice/")
public class NoticeController {
@RequestMapping("list")
public String list() {
return "";
}
@RequestMapping("reg")
@ResponseBody
public String reg(String title, String content) {
return String.format("title:%s<br>content:%s<br>", title, content);
}
@RequestMapping("adit")
public String adit() {
return "";
}
@RequestMapping("del")
public String del() {
return "";
}
}
캄보 박스 값 입력
reg1.btml
매개변수 카테고리 추가
noticeController.java
체크박스 값 입력
name을 같게 해 준다
reg1.html
name을 같게 해 주면 배열로 받을 수 있다.
라디오 버튼 값 입력
여러 개 중에서 하나만 선택 가능
아래와 같이 이름을 설정하면 두 그룹으로 나눌 수 있다
noticeController.java
package com.newlecture.web.controller.admin.board;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller("adminNoticeController")
@RequestMapping("/admin/board/notice/")
public class NoticeController {
@RequestMapping("list")
public String list() {
return "";
}
@RequestMapping("reg")
@ResponseBody
public String reg(String title, String content, String category, String[] foods, String food) {
System.out.println(category);
for(String f : foods)
System.out.println(f);
System.out.println(food);
return String.format("title:%s<br>content:%s<br>category:%s", title, content, category);
}
@RequestMapping("adit")
public String adit() {
return "";
}
@RequestMapping("del")
public String del() {
return "";
}
}
POST 한글 깨지는 문제 해결하기
UTF-8로 전달하기
URL Encoding
Servlet
request.setCharacterEncoding("UTF-8");
입력받을 때마다 해야 하는 불편함이 있다. -> 필터를 사용하자
필터
요청과 서블릿 중간 진행되는 과정에서 처리할 것이 있으면 설정할 수 있다.
web.xml
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0"
metadata-complete="true">
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/spring/service-context.xml
/WEB-INF/spring/security-context.xml
</param-value>
</context-param>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/servlet-context.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
<async-supported>true</async-supported>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<filter>
<filter-name>charaterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>charaterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<display-name>Welcome to Tomcat</display-name>
<description>
Welcome to Tomcat
</description>
</web-app>