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

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

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

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

Q&A

解決済

1回答

3107閲覧

jspで「トークン"}"に構文エラーがあります。正しくは;です」というエラーが発生します。

Marina_

総合スコア14

JSP

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

0グッド

0クリップ

投稿2021/09/09 23:26

編集2021/09/10 05:38

前回とは別の内容のエラーです。
escapeXXLメソッドの直後の()に、タイトルに記述した内容のエラーが発生します。
恐れ入りますが、もしよろしければご教示いただけますと幸いです。

jsp

1<%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" %> 2<%@ page import="model.RecordsDto"%> 3<%@ page import="model.ShowAllRecordsBL"%> 4<%@ page import="java.util.ArrayList"%> 5<%@ page import="java.util.List"%> 6 7<html> 8<head> 9<title>記録一覧</title> 10</head> 11<body> 12<h2>記録一覧</h2> 13<table class="surbey_list" border=1> 14<tr bgcolor="#c0c0c0"> 15<th>自主的に行ったこと</th> 16<th>高い成果を出したこと</th> 17<th>改善点(仕事の仕方)</th> 18<th>改善点(コミュニケーション)</th> 19<th>記録時間</th> 20</tr> 21<tr> 22<td><%=escapeXXL(dto.getInitiative())%></td> 23<td><%=escapeXXL(dto.getAccomplishment())%></td> 24<td><%=escapeXXL(dto.getTo_improve_work())%></td> 25<td><%=escapeXXL(dto.getTo_improve_commu())%></td> 26<td><%=dto.getTime()%></td> 27</tr> 28</table> 29<br> 30<a href="InputRecords">記録画面に戻る</a> 31</body> 32</html> 33<% 34//「reflection」テーブルのデータを全件抽出 35List<SurveyDto> list = (List<SurveyDto>)request.getAttribute("ALL_SURVEY_LIST"); 36for (int i = 0; i < list.size(); i++) { 37RecordsDto dto = list.get(i); 38} 39/* *■■■escapeXXLメソッド■■■ *概要:文字列データのエスケープを行う */ 40/* private static */ 41private static String escapeXXL(String val){ 42if (val == null) return ""; 43val = val.replaceAll("&", "& amp;"); 44val = val.replaceAll("<", "& lt;"); 45val = val.replaceAll(">", "& gt;"); 46val = val.replaceAll("\"", "&quot;"); 47val = val.replaceAll("'", "&apos;"); 48return val; 49} 50%>

【9月10日 14:30追記】
コード上で下記写真の赤い警告は出ていますが、画面上では正常に動作するようになりました。
イメージ説明イメージ説明

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

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

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

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

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

guest

回答1

0

ベストアンサー

JSPはあまり知識が無いのですが

JSP

1private static escape(val){

valの型とescapeの型が必要なのではないですか?

JSP

1private static String escape(String val){

投稿2021/09/09 23:40

itagagaki

総合スコア8402

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

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

Marina_

2021/09/09 23:45

itagagakiさん ご教授いただき、ありがとうございます。 仰る通り、それで一つ目のエラーが消えました。 しかし、escape(String val) の丸括弧両方に警告が出てきました。 トークン")"に構文エラーがあります。正しくは;です。 という内容です。 解決方法についてご存知でしたら教えていただけましたら幸いです。
itagagaki

2021/09/09 23:56

まったくの推測ですが、escape はすでに定義されている名前なのかも。試しに別の名前に変えてみたらどうでしょうか。
Marina_

2021/09/10 00:26

escapeはまだ定義していないです。
itagagaki

2021/09/10 00:36 編集

予約語でもない?変えてみました?
Marina_

2021/09/10 01:18

はい。変えてみましたがダメでした。
itagagaki

2021/09/10 02:29

もしエラーが 「トークン")"に構文エラーがあります。正しくは;です。」 の一行だけでなければ、質問を編集して、出ているエラーメッセージすべて省略せずそのまま書くことをお勧めします。
Marina_

2021/09/10 02:46

ご指摘いただき、ありがとうございます。修正しました。
itagagaki

2021/09/10 02:51

えーと、エラーメッセージは1つだけなんですね? それと型 String の指定(2カ所)が無くなって先祖返りしてしまっているようですが…
Marina_

2021/09/10 04:02

はい。エラーメッセージは一つだけです。 Stringに関してコードが反映できておらず、失礼いたしました。
itagagaki

2021/09/10 04:10

全然関係ないかもですが、 val = val.replaceAll("/", "&quot;"); これって、やりたいのは val = val.replaceAll("\"", "&quot;"); なのでは? そして、実は val = val.replaceAll("\", "&quot;"); のように文字列がちゃんと閉じていなかったりはしていないですか? あとは、ちょっと気になるので /* *■■■escapeXXLメソッド■■■ *概要:文字列データのエスケープを行う */ /* private static */ を消して実行してみてもらえますか。
Marina_

2021/09/10 04:46

ご指摘いただき、ありがとうございます。 下記実施しましたが、うまくいきませんでした。 ①val = val.replaceAll("\"", "&quot;");への変更 ②文字列が閉じていることの確認 ③コメントアウトした文の削除
Marina_

2021/09/10 05:00

itagagakiさん お手数をおかけしてしまい、申し訳ございません。 一つずつ自分の知識の誤りが分かり、大変助かります。
Marina_

2021/09/10 05:36

itagagakiさん コード上で下記写真の赤い警告は出ていますが、画面上では正常に動作するようになりました。ダブルクオーテーションのために動作が動かず、何か間違えているけれど動作上問題ない状態なのだと思います。 ご解決いただき、ありがとうございました。 質問文にて、【9月10日 14:30追記】と記しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問