質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Struts

StrutsはJava向けのWebアプリケーションフレームです。MVCモデルに基づいており、JSPやJavaサーブレットを組み合わせ、アプリケーション構築時に使用する各機能を提供しています。

Q&A

解決済

2回答

4893閲覧

Strutsのincludeディレクティブで取り込んだJavaScriptから値をJSPに設定すると文字化けする

TETSUO

総合スコア12

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Struts

StrutsはJava向けのWebアプリケーションフレームです。MVCモデルに基づいており、JSPやJavaサーブレットを組み合わせ、アプリケーション構築時に使用する各機能を提供しています。

1グッド

0クリップ

投稿2016/05/08 13:10

###前提・実現したいこと
現在Strutsでページング処理をする画面を作っています。

Strutsのincudeディレクティブで、JavaScriptファイルをインクルードし、JavaScriptから表示するページ番号をJSPに設定して表示させたいです。

###発生している問題・エラーメッセージ
javaScript側で設定した値自体は表示されているのですが、その「ページ」部分の文字が文字化けしてしまいます。
(1ページ というように文字化けしています。)

###該当のソースコード
JavaScriptファイル(※該当部分を抜粋)
function pageFunc() {
var pageNum = document.forms[0].page.value;
var page = document.getElementById("page");
page.innerHTML = pageNum + "ページ";
}

JSPファイル(※該当部分を抜粋)
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" buffer="128kb" autoFlush="false" %>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<%@ include file="../js/VB01ShohinIchiran.js" %>

<%-- ページ番号表示部分 --%>

<td width="170"> <span id="page"></span>&nbsp;&nbsp; </td>

###試したこと
JavaScriptファイル側で文字コードが設定されていないのが問題なのではないかと思い

<script type="text/javascript" charset="UTF-8"> というように文字コードを設定いたしましたが、文字化けはなおりませんでした。 ###補足情報(言語/FW/ツール等のバージョンなど) Java 1.8.0_40 Struts 1.3.10 Tomcat 8.0.33 Internet Explorer11
A-pZ👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kentei_syunrai

2016/05/08 14:22

JSPのcharsetの値がダブルクォートでうまく囲めてないのは、書き間違いですか?
TETSUO

2016/05/09 13:49

JSPのPageディレクティブのcontentTypeの属性値はMIMEタイプと文字コードの設定をダブルクォートで囲む書式になっているので、書き間違いではありません。試しにcharsetの値をダブルクォートで囲むとJSPはコンパイルエラーになりました。
guest

回答2

0

ベストアンサー

インクルードしているjsファイルの先頭行に次のディレクティブを追加してください。

JSP

1<%@ page pageEncoding="UTF-8" %>

投稿2016/05/09 03:41

A-pZ

総合スコア12011

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TETSUO

2016/05/09 14:36

A-pZさん回答ありがとうございます。 インクルードしているJavascriptファイルの先頭行に <%@ page pageEncoding="UTF-8" %> のディレクティブを追加したところ、正常に文字が表示されました。 助かりました。本当にありがとうございました。
guest

0

Javascriptで表示させている「ページ」以外に、JSPで表示させている文字も文字化けしてしまいますか?

Javascriptで表示させている部分だけ文字化けしている場合、Javascriptファイルに問題がありそうです。
JSPで表示させている文字も文字化けしている場合、ブラウザで思った通りにエンコードされていない可能性があります。


可能性としては以下が考えられます。
順を追って原因を確認してみてください。

  • JavascriptのファイルがUTF8以外で保存されている(ShiftJISなど)
  • JSPファイルがUTF8以外で保存されている
  • ブラウザのエンコードが「UTF8」以外(自動判別でUTF8にならない場合を含む)になっている

投稿2016/05/08 15:44

takyafumin

総合スコア2335

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TETSUO

2016/05/09 14:29 編集

文字化けしているのは、Javascriptで表示させている部分だけです。 JSPは文字化けしていません。 以下、順次確認いたしました。 •JavascriptのファイルがUTF8以外で保存されている(ShiftJISなど) 確認結果:Javascriptファイルは文字コードがUTF-8で保存されていました。 •JSPファイルがUTF8以外で保存されている 確認結果:JSPファイルは文字コードがUTF-8で保存されていました。 •ブラウザのエンコードが「UTF8」以外(自動判別でUTF8にならない場合を含む)になっている 確認結果:ブラウザの文字コードを確認したところ、日本語(Shift-jis)になっていたのでUnicode(UTF-8)に設定しましたが、文字化けは直りませんでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問