Spring MVC でPOSTしたデータが文字化けする

実現したいこと

前提

ユーザ登録画面で入力したデータを、サーバ側で確認したところ文字化けしていた。
※Controllerで受け取った時点ですでに文字化けしていました。

該当のソースコード

@RequestMapping(method=RequestMethod.POST,value="/register",produces="text/plain;charset=UTF-8") public ModelAndView register(@ModelAttribute UserInfoForm form, ModelAndView m) { m.addObject("form",form); m.setViewName("register.html"); return m; }
<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/extras/spring-security"> <head> <title>登録ページ</title> <meta charset="UTF-8"> <link rel="stylesheet" href="../static/css/common.css" th:href="@{/css/common.css}"> <script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script> </head> <body> <h1>Training</h1> <div class="common"> <br/> <h2 class="common-header">Sign up</h2> <form action="/register" method="post" > <p><input type="email" placeholder="Email" th:value="${form.email}" name="email" size="30" /></p> <p><input type="password" placeholder="Password" name="password" size="10" /></p> <p><input type="name" placeholder="Name" th:value="${form.name}" name="name" size="10" /></p> <p><input class="button" id= "btn" type="submit" value="Create"/></p> </form> </div> </body> </html>
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <filter> <filter-name>SetCharacterEncodingFilter</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>SetCharacterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>

試したこと

・@RequestMappingのproduces属性に文字コードを指定した
・web.xmlにEncodingFilterの記述をした(ネットで見かけたため)
web.xmlは自分で作成してsrc/main/WEB-INF/webapp配下に置いただけで、読み込みの設定等はしておらず(方法がわからいため)web.xmlがうまく読み込めてないのかもしれません。

コメントを投稿

0 コメント