Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

文字列リテラルがダブル・クォートによって正しく閉じられていません  

java初心者です。
よろしくお願いいたします。

eclipseを使いJavaの勉強をしています。以下のJSPファイルを書いて実行したのですがworkフォルダにできる。NoInput_jsp.javaファイルに×印が付いてしまい困っています。

○NoInput.jsp
<%@ page import="java.util.*"%>
<%@ page contentType="text/html; charset=Shift_JIS"%>
<%
GregorianCalendar gcal = new GregorianCalendar();
int hour = gcal.get(Calendar.HOUR_OF_DAY);
String message;
if(hour >= 0 && hour <= 8){message = hour + "時ですね。おはようございます";}
else if(hour >= 9 && hour <= 16){message = hour + "時ですね。こんにちは";}
else{message = hour + "時ですね。こんばんは";}
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <title>挨拶をしようプログラム</title>
</head>
<body><center>
<font color="red" size="18">いらっしゃい!!<br>
現在の時間は<%= message %>
</font>
</center></body>
</html>

○NoInput_jsp.java
〜省略〜
GregorianCalendar gcal = new GregorianCalendar();
int hour = gcal.get(Calendar.HOUR_OF_DAY);
String message;
if(hour >= 0 && hour <= 8){message = hour + "譎ゅ〒縺吶&#65533;縲ゅ♀縺ッ繧医≧縺斐*縺&#65533;∪縺&#65533;;}←この部分で×印
else if(hour >= 9 && hour <= 16){message = hour + "譎ゅ〒縺吶&#65533;縲ゅ%繧薙↓縺。縺ッ";}
else{message = hour + "譎ゅ〒縺吶&#65533;縲ゅ%繧薙&#65533;繧薙&#65533;";}
〜省略〜

エラーの内容は「文字列リテラルがダブル・クォートによって正しく閉じられていません」です。何度も確認したのですが、もとのJSPファイルはダブルクォーテションでしっかり囲っています。

※環境※
eclipse 3.4
tomcat 6.0.18
jdk1.6.0_07

どなたかご教授いただける方お願いいたします。

12

回答

10297

閲覧

12件の回答

評価

0

あぁ、多分、
JSPのファイルのエンコーディングと 
tomcatのJSPファイルのエンコーディングがあってないんじゃないでしょうか。

javaファイルが文字化けして"がないって怒られてるっぽいので。

評価

0

<%@ page contentType="text/html; charset=Shift_JIS"%>

コロ氏が指摘してるが、JSPファイルが本当に
shift_jisなのかどうか、確認してみませう。

評価

0

コロ様ご回答ありがとうございます。

>JSPのファイルのエンコーディングと 
tomcatのJSPファイルのエンコーディングがあってないんじゃないでしょうか。

tomcatのエンコーディング方式というのはどこに書かれているのでしょうか。

またそのエンコーディング方式を変えるにはどのようにすればよろしいのでしょうか。

評価

0

pageEncodingを指定するという手も。

評価

0

$様ありがとうございます。
pageEncodingを付け加えても同じ現象を確認済みです。

不良社員様ありがとうございます。
JSPファイルが本当にShift_JISなのかどうかというのはどのように確認すればよいのでしょうか。

評価

0

ここに戻ってくる前に、やるべきことはやったのかい。

エディタでは、ちゃんと文字が読めるのかな。
だったら、文字コードを指定して保存すれば。

評価

0

tomcatのconfフォルダの中にあるweb.xmlに

<init-param>
            <param-name>javaEncoding</param-name>
         <param-value>Shift_JIS</param-value>
</init-param>

を追記したら×表示が消えました。

皆様ご回答ありがとうございました。

評価

0

>tomcatのエンコーディング方式というのはどこに書かれているのでしょうか。

聞く前に、調べる っていう癖をつけると、
自分で解決できる幅が広がると思います。

なのであえて正解は言わず、ヒントだけ。
tomcat エンコーディング
と検索してみましょう。

評価

0

>tomcatのconfフォルダの中にあるweb.xml

ぁ、正解です。(・∀・)
かぶっちゃったので
>2008-10-22 11:05
はスルーしてくださいな。

評価

0

コロ様へ

自分で調べる癖をつけ、精進いたします。

ありがとうございました。

評価

0

あと、マルチポスト先にもフォローを入れときましょうね。

評価

0

不良社員様ご指摘ありがとうございます。
片方の投稿には解決したと記入しました。

せっぱつまっていたものでマルチポストをしてしまいました。わかってしまうものなのですね。

申し訳ないです。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。