【問題になっていること】
以下のようにTiles設定ファイル(tiles-config.xml)でベースレイアウトを宣言し、そしてベースレイアウトから派生し、記述したログイン画面とトップ画面を宣言しました。
tiles-config.xml
xml
1<?xml version="1.0" encoding="UTF-8" ?> 2<!DOCTYPE tiles-definitions PUBLIC 3 "-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN" 4 "http://tiles.apache.org/dtds/tiles-config_3_0.dtd"> 5<tiles-definitions> 6 7 <!-- ベースレイアウト --> 8 <definition name="baseLayout" template="/WEB-INF/layouts/baseLayout.jsp"> 9 <put-attribute name="title" value="" /> 10 <put-attribute name="header" value="/WEB-INF/layouts/header.jsp" /> 11 <put-attribute name="menu" value="" /> 12 <put-attribute name="body" value="" /> 13 <put-attribute name="footer" value="/WEB-INF/layouts/footer.jsp" /> 14 </definition> 15 16 <!-- ログイン画面 --> 17 <definition name="login" extends="baseLayout"> 18 <put-attribute name="title" value="ログイン画面" /> 19 <put-attribute name="body" value="/WEB-INF/views/login.jsp" /> 20 </definition> 21 22 <!-- トップ画面 --> 23 <definition name="top" extends="baseLayout"> 24 <put-attribute name="title" value="トップ画面" /> 25 <put-attribute name="body" value="/WEB-INF/views/top.jsp" /> 26 </definition> 27 28</tiles-definitions>
以下のソース(login.jsp)のように日本語の含んだformタグを宣言したら、文字化けしてしまいました。
login.jsp
JSP
1<form method="POST" 2 action="${pageContext.request.contextPath}/top" 3 class="form-signin"> 4<!-- <h2 class="form-heading">ログイン</h2> --> 5 <div class="form-group"> 6 <input name="username" type="mail" class="form-control" placeholder="Username" autofocus="true" /> 7 <br/> 8 <input name="password" type="password" class="form-control" placeholder="Password" /> 9 <span>${error}</span> 10 <br/> 11 12 <button class="btn btn-lg btn-primary btn-block" type="submit">ログイン</button> 13 <h4 class="text-center"> 14 <a href="${pageContext.request.contextPath}/top">パスワード忘れた場合</a> 15 </h4> 16 </div> 17</form>
【行った対策・試したこと】
・web.xmlにフィルターをかけた
web.xml
xml
1… 2 <filter> 3 <filter-name>characterEncodingFileter</filter-name> 4 <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 5 <init-param> 6 <param-name>encoding</param-name> 7 <param-value>UTF-8</param-value> 8 </init-param> 9 <init-param> 10 <param-name>forceEncoding</param-name> 11 <param-value>true</param-value> 12 </init-param> 13 </filter> 14 <filter-mapping> 15 <filter-name>characterEncodingFileter</filter-name> 16 <url-pattern>/*</url-pattern> 17 </filter-mapping> 18…
・実行したウェブブラウザでソースを参照し、エンコードを確かめた(UTF-8になっていた)
・ligin.jspの一番上の行のところに
html
1<head> 2<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 3</head>
を追加してみた。
・ベースレイアウト(baseLayout.jsp)のbodyタグの中に日本語を記述してみた(文字化けにならず、実行結果が日本語になっていた)
【質問】
以上の四項目は試したが、原因がわからず文字化けした実行状態のままです。原因または対策がわかる方教えてもらえると嬉しいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。