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

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

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

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

1194閲覧

EclipseでHTMLのコーディングをしましたがout.printlnに関して何故かエラーが出てしまいます。

chimo

総合スコア55

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2020/03/21 09:06

Eclipse上でhtmlを使い以下のようなコードをかきました。

HTML

1//投稿内容のリスト 2 List<String> postContentList = new ArrayList<String>(); 3 postContentList.add( name ); 4 postContentList.add( age ); 5 postContentList.add( sex ); 6 postContentList.add( satisfactionLevel ); 7 postContentList.add( message ); 8 9 //HTML文書(HTMLテーブル作成Sample画面)の出力 10 out.println( "<html> "); 11 out.println( "<head> "); 12 out.println( " <title>アンケート回答一覧</title> "); 13 out.println( "</head> "); 14 out.println( "<body> "); 15 out.println( " <h2>ご協力ありがとうございました!</h2> "); 16 17 //--------------▼テーブルの作成▼-------------- 18 19 out.println( " <table class=\"list\" border=1 id=\"TABLE\"> "); 20 out.println( " <tr bgcolor=\"#c0c0c0\"> "); 21 out.println( " <th>名前</th> "); 22 out.println( " <th>年齢</th> "); 23 out.println( " <th>性別</th> "); 24 out.println( " <th>満足度</th> "); 25 out.println( " <th>ご意見・ご感想</th> "); 26 out.println( " <th>回答時間</th> "); 27 out.println( " </tr> "); 28 29 for (int i = 0; i < postContentList.size(); i++) { 30 31 out.println(" <tr> "); // trタグ:1行分の情報を表す(2行目以降) 32 out.println(" <td>" + postContentList.get(i) + "</td> "); // tdタグ:データを表す(1列目) 33 out.println(" </tr> "); // trタグ(閉じ) 34 } 35 36 out.println( " </table> "); //tableタグ(閉じ) 37 38 //--------------▲テーブルの作成▲-------------- 39 40 out.println(" <a href=\"InputSurvey\">アンケート画面へ戻る</a> "); //前の画面に戻るリンクの設定 41 42 out.println( "</body> "); 43 out.println( "</html> "); 44 45 }

やりたいことは、ArrayListに格納した情報をテーブルにしてブラウザに表示したいといった感じです。アルゴリズム的なところは難しすぎて間違っている気しかしない状態でコーディングしておりますが、思いがけないところでエラーが発生してしまいました。out.println( "< >" )のところなのですが、Eclipse上で「out」の部分に赤の波線が引かれており、「outを解決できません」というエラーが出てくるのです。しかし、今までhtmlで普通にout.printlnを使ていたので何がそんなにダメなのかわかりません。自分なりに同じエラーが起こっていないかネットで検索してみましたが、解決策見つからず...。

どなたかお助けください!!!

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

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

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

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

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

encho

2020/03/21 10:15 編集

サーブレットでHTMLを出力したいといった方が表現として正しいのではないかと思います。 なのでコードの部分もHTMLではなくJavaが適切でしょう。 あとコードの一部ではなく全体を記載した方が回答が集まりやすいかと思います!
chimo

2020/03/21 10:55

アドバイスありがとうございます!ちょっと、別の質問として一度全体のソースコード(web.xmlやDAO, DTO含めて)載せてみたいとおもいます。もしよろしけえば、次の質問も見ていただければとても嬉しく思います...。
guest

回答1

0

ベストアンサー

System.out.printlnではないでしょうか。

投稿2020/03/21 09:36

m.ts10806

総合スコア80875

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

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

chimo

2020/03/21 09:43

んー、たしかにjava単体でコーディングしてるときはSystem.out.printlnを使ってたんですけど、javaの中でhtmlのコードを書くときはなぜかout.printlnで書くんですよ(わたしの先生が)。理由は分かりませんが以下のコードは別のクラスのものですが、out.printlnでもエラーなしになってます。 package work; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /**----------------------------------------------------------------------* *■■■InputSurveyクラス■■■ *概要:サーブレット *詳細:HTML文書(回答入力画面)を出力する。 *----------------------------------------------------------------------**/ public class InputSurvey extends HttpServlet { private static final long serialVersionUID = 1L; public InputSurvey() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //レスポンス(出力データ)の文字コードを設定 response.setContentType("text/html;charset=UTF-8"); //文字コードをUTF-8で設定 //出力用のストリームの取得 PrintWriter out = response.getWriter(); //HTML文書(回答入力画面)の出力 out.println("<html> "); out.println("<head> "); out.println(" <title>回答入力</title> "); out.println("</head> "); out.println("<body> "); out.println(" <h2>わんちゃん暮らし改善アンケートフォーム</h2> "); out.println(" <form action=\"SaveSurvey\" method=\"post\"> "); out.println(" <p>名前: "); out.println(" <input type=\"text\" name=\"NAME\" maxlength = \"20\"> "); out.println(" </p> "); out.println(" <p>年齢: "); out.println(" <input type=\"number\" name=\"AGE\" maxlength = \"3\"> "); out.println(" </p> "); out.println(" <p>性別: "); out.println(" <input type=\"radio\" name=\"SEX\" value=\"1\" checked>オス "); out.println(" <input type=\"radio\" name=\"SEX\" value=\"2\">メス "); out.println(" </p> "); out.println(" <p> 満足度: "); out.println(" <select name=\"SATISFACTION_LEVEL\"> "); out.println(" <option value=\"5\">とても満足</option> "); out.println(" <option value=\"4\">満足 </option> "); out.println(" <option value=\"3\">普通 </option> "); out.println(" <option value=\"2\">不満 </option> "); out.println(" <option value=\"1\">とても不満</option> "); out.println(" </select> "); out.println(" </p> "); out.println(" <p>飼い主へのご意見・ご感想をご記入ください:<br> "); out.println(" <textarea name=\"MESSAGE\" rows=\"4\" cols=\"50\" maxlength = \"250\"></textarea> "); out.println(" </p> "); out.println(" <input type=\"submit\" value=\"回答する(SaveSurveyを起動)\"> "); out.println(" </form> "); out.println(" <a href=\"ShowAllSurvey\">アンケート画面へ戻る</a> "); out.println("</body> "); out.println("</html> "); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
chimo

2020/03/21 10:56

System.をつけたらエラーはなくなりました。でもなぜ今まで「out.println」だけで動いていたのかすごく不思議です...。
m.ts10806

2020/03/21 10:58

>PrintWriter out = response.getWriter(); 上記、ちゃんと書いてるからでは。 outだけはJavaには存在しないので、出力書く場合はSystemから書く必要があります。これは構文・お作法の問題です。
chimo

2020/03/21 11:02

返信ありがとうございます。PrintWriter out = response.getWriter(); はそういう意味だったんですね。その部分はあまり意味を考えずにいてました。未熟な質問に答えていただきありがとうございました!!
m.ts10806

2020/03/21 11:21

正確に伝えると getWriterした結果をPrintWriterという型で宣言したoutという変数が定義されたため「使える」だけであって、何もしてないとoutという変数はどこにもなく、その場合に「出力したい」のであれば同じように定義するか、一般的な出力で利用されるSystemが持つoutを利用する必要があるということです。 厳密にはoutという変数とSystemのoutは異なるものです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問