実現したいこと
エスケープを使って「<」「>」を変更したのですが、1行目の「<%@page...」のところの波線が消えない。
1行目と2行目は似ているが、1行目の波線だけが消せません。
.jspのコードが4個ほどあって、いずれも1行目の波線が消えません。
editstudent.jsp,editstudents.jspの1行目、2行目
1 2<%@page contentType="text/html;charset=utf-8" %> 3<%@page import="bean.*" %> 4 5... 6
発生している問題・分からないこと
なぜかわからないので、よろしくお願いいたします。
該当のソースコード
editstudent.jp
1<%@page contentType="text/html;charset=utf-8" %> 2<%@page import="bean.*" %> 3>jsp:useBean id ="sdto" scope="request" class="bean.StudentDTO" /> 4>jsp:useBean id ="msg" scope="request" class="java.lang.String" /> 5<html> 6 <head> 7 <title>表示画面</title> 8 </head> 9<body> 10<h2><%= msg %></h2> 11<table border="0"> 12 <tr> 13 <th width="50">番号</th> 14 <th width="50">名前</th> 15 <th width="50">点数</th> 16 </tr> 17<% 18 for(int i = 0; i < sdto.size(); i++){ 19 StudentBean sb = sdto.get(i); 20%> 21 <tr> 22 <td align="center"><%= sb.getNo() %></td> 23 <td align="center"><%= sb.getName() %></td> 24 <td align="center"><%= sb.getScore() %></td> 25 </tr> 26<% } %> 27</table><br /> 28<a href="/dbweb/editstudent.html">戻る</a> 29</body> 30</html> 31 32 33
showstudents.jsp
1<%@page contentType="text/html;charset=utf-8" %> 2<%@page import="bean.*" %> 3<jsp:useBean id ="sdto" scope="request" class="bean.StudentDTO" /> 4<html> 5 <head> 6 <title>表示画面</title> 7 </head> 8<body> 9<h2>生徒全員の情報は次の通りです</h2> 10<table border="0"> 11 <tr> 12 <th width="50">番号</th> 13 <th width="50">名前</th> 14 <th width="50">点数</th> 15 </tr> 16<% 17 for(int i = 0; i < sdto.size(); i++){ 18 StudentBean sb = sdto.get(i); 19%> 20 <tr> 21 <td align="center"><%= sb.getNo() %></td> 22 <td align="center"><%= sb.getName() %></td> 23 <td align="center"><%= sb.getScore() %></td> 24 </tr> 25<% } %> 26</table> 27</body> 28</html>
<%@page contentType="text/html;charset=utf-8" %> <%@page import="bean.*" %> <jsp:useBean id ="sdto" scope="request" class="bean.StudentDTO" /> <jsp:useBean id ="msg" scope="request" class="java.lang.String" /> <html> <head> <title>表示画面</title> </head> <body> <h2><%= msg %></h2> <table border="0"> <tr> <th width="50">番号</th> <th width="50">名前</th> <th width="50">点数</th> </tr> <% for(int i = 0; i < sdto.size(); i++){ StudentBean sb = sdto.get(i); %> <tr> <td align="center"><%= sb.getNo() %></td> <td align="center"><%= sb.getName() %></td> <td align="center"><%= sb.getScore() %></td> </tr> <% } %> </table><br /> <a href="/dbweb/editstudent.html">戻る</a> </body> </html>
<%@page contentType="text/html;charset=utf-8" %> <%@page import="bean.*" %> <jsp:useBean id ="sdto" scope="request" class="bean.StudentDTO" /> <html> <head> <title>表示画面</title> </head> <body> <h2>生徒全員の情報は次の通りです</h2> <table border="0"> <tr> <th width="50">番号</th> <th width="50">名前</th> <th width="50">点数</th> </tr> <% for(int i = 0; i < sdto.size(); i++){ StudentBean sb = sdto.get(i); %> <tr> <td align="center"><%= sb.getNo() %></td> <td align="center"><%= sb.getName() %></td> <td align="center"><%= sb.getScore() %></td> </tr> <% } %> </table> </body> </html>
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
エスケープ文字で検索して、あらかた消せたのですが、
後がわかりません。
補足
windows10,VSCode,を使っています。
ファイルがJSPなら、変更せずに<>のままにしないと正常に動作しません。
VSCodeは、JSPでなく、HTMLとしてチェックしているのではないでしょうか。
Visual Studio Codeのプラグインは何を使っていますか? プラグインやその設定によって表示内容も異なると思われます。あと、どんなJSPファイルでも1行目に波線?(警告?)が表示されるようなら、UTF-8でBOM付きになっているかもしれません。ある種のエディターや設定ではBOM付きのUNICODEのテキストファイルで問題が起きることがあります。
貴重なコメントありがとうございます。
今から仕事なので帰ってから挑戦したいと思います。
JSPファイルはUTF-8になっています。
tomcat9.0.98をインストール、MySQLを8.0.41,jdkwo22.0.2をインストールしなおして、やっています。
たぶん、私のコメントの意図が正しく伝わっていないのですが、
> JSPファイルはUTF-8になっています。
ファイルのエンコード(文字コード)がUTF-8でも、更にBOM有り、BOM無しの2種類があります。(UTF-8 BOM有り、UTF-8 BOM無し) BOMとは「Byte Order Mark」の略で、ファイルの先頭数バイトに付与されているデータで、これの有り無しでエディターの挙動が変わるケースがある、と言うことでの指摘です。
> tomcat9.0.98をインストール、MySQLを8.0.41,jdkwo22.0.2をインストールしなおして、やっています。
とりあえずこれは本質問には関係ないです。Visual Studio Code自体に追加したプラグインのお話をしています。関係があるのはこちらの質問でしょうか。
[localhostでshowname.htmlを実行した後に,「実行」ボタンをクリックすると「名前」が表示されるようにしたいがエラーになる]
https://teratail.com/questions/58tlf6f4hn9it1
> エスケープを使って「<」「>」を変更したのですが、1行目の「<%@page...」のところの波線が消えない。
とのことで、これはVisual Studio Codeのエディター上で見た話なのですよね? そうではないのであれば、正確に質問文中に書きましょう。
私のコメントで「プラグイン」と書いていましたが、Visual Studio Codeでは「エクステンション」(Extensions、拡張機能)ですね。私の呼び間違いで混乱させていたらすみません。
とりあえず、私の手もとのVisual Studio Code(1.96.4)、Windows 10 Pro上で試してみた限りでは、ご質問のいくつかのJSPファイルをUTF-8のBOM有り、BOM無しで保存して開いてみても、Visual Studio Code上のエディターでは波線などは表示されず、分かりませんでした。
何らかの文法チェッカー付きのエディターでそれらのJSPファイルを開き、波線が出ているのかと思いますが、そういうものの詳細を質問文中に提示しないと本質問の閲覧者には分からないと思います。
(そういう意味で、Visual Studio Codeのプラグイン(正:エクステンション)は何を使っていますか?」との旨のコメントをしました。
あまり細かく指摘しても混乱を招くだけだと思いますので、コメントは以上にしておきます。
いろいろありがとうございました。
2つの質問をしていて、わたくし自身もコメントで間違っていました。
1つ解決しましたので、残りの講座を終了してから「<%@page...」のところの波線が消えない。を解決したいと思っていますが、すこし時間がかかると思います。
CODEPREPでJavaを勉強しています。
その中の2.Java基礎 データベース接続編の中に出てくるコードを質問に乗せたのですが、
ほかの人には何のことなのかわからなかったと思いました。
多分,VSCodeの中にエラーが出ていて、設定が間違っていると思います。
設定を最初から見直そうかと思いますが、講座の設定を復習してみます。
ここで詰まって、「【有料級】JavaでDB接続するJDBCプログラミングを完全解説」で
データベースを勉強したら解決できるかなと思って始めたら、また詰まってしまったのが現況でした。
「【有料級】JavaでDB接続するJDBCプログラミングを完全解説」を一通り
勉強をして、データベースがどうゆう風に作成されるのかが理解できました。
2つの質問も同時に解決しました。
ありがとうございました。

あなたの回答
tips
プレビュー