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

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

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

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

Java

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

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

解決済

servletで作成したカレンダーをJSPで記述したい

n000n00
n000n00

総合スコア0

JSP

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

Java

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

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

1回答

-1評価

0クリップ

4116閲覧

投稿2016/12/25 08:45

編集2022/01/12 10:58

下記のservletのソースをJSPで記述しようとしていますが、
うまくいきません。
el式 coreタグも利用しています。
最終的にはservletとJSPを連携してカレンダーを表示したいです。

ご教授いただけないでしょうか。
ざっくりした質問で申し訳ないですが、よろしくお願いします。

Java

public class MonthView extends HttpServlet { protected Connection con = null; @Override public void init\(\) throws ServletException { try { con = DBManager\.getConnection\(\); } catch \(Exception e\) { log\("Exception:" \+ e\.getMessage\(\)\); } } public void destory\(\) { try { if \(con != null\) { con\.close\(\); } } catch \(SQLException e\) { log\("SQLException:" \+ e\.getMessage\(\)\); } } @Override public void doGet\(HttpServletRequest request, HttpServletResponse response\) throws ServletException, IOException { response\.setContentType\("text/html;charset=UTF-8"\); PrintWriter out = response\.getWriter\(\); int\[\] calendarDay; int count; int year; int month; int day = 1; calendarDay = new int\[42\]; /\* 最大で7日×6週 \*/ count = 0; String param = request\.getParameter\("YEAR"\); if \(param == null || param\.length\(\) == 0\) { year = -999; } else { try { year = Integer\.parseInt\(param\); } catch \(NumberFormatException e\) { year = -999; } } param = request\.getParameter\("MONTH"\); if \(param == null || param\.length\(\) == 0\) { month = -999; } else { try { month = Integer\.parseInt\(param\); } catch \(NumberFormatException e\) { month = -999; } } /\* パラメータが指定されていない場合は本日の日付を設定 \*/ if \(year == -999 || month == -999\) { Calendar calendar = Calendar\.getInstance\(\); year = calendar\.get\(Calendar\.YEAR\); month = calendar\.get\(Calendar\.MONTH\); day = calendar\.get\(Calendar\.DATE\); } else { if \(month == 12\) { month = 0; year\+\+; } if \(month == -1\) { month = 11; year--; } } /\* ユーザー情報を取り出す \*/ HttpSession session = request\.getSession\(false\); Object tmp = session\.getAttribute\("username"\); String username; if \(tmp == null\) { username = ""; } else { username = \(String\) tmp; } tmp = session\.getAttribute\("userid"\); int userid; if \(tmp == null\) { userid = 0; } else { userid = Integer\.parseInt\(\(String\) tmp\); } tmp = session\.getAttribute\("roll"\); String roll; if \(tmp == null\) { roll = ""; } else { roll = \(String\) tmp; } StringBuffer sb = new StringBuffer\(\); sb\.append\("<!DOCTYPE html PUBLIC \\"-//W3C//DTD HTML 4\.0\.1//EN\\" \\"http://www\.w3\.org/TR/html4/strict\.dtd\\">"\); sb\.append\("<html lang=\\"ja\\">"\); sb\.append\("<head>"\); sb\.append\("<meta http-equiv=\\"Content-Type\\" Content=\\"text/html;charset=Shift_JIS\\">"\); sb\.append\("<title>スケジュール管理</title>"\); sb\.append\("<style>"\); sb\.append\("table{border:1px solid #a9a9a9;width:90%;padding:0px;margin:0px;border-collapse:collapse;}"\); sb\.append\( "td{width:12%;border-top:1px solid #a9a9a9;border-left:1px solid #a9a9a9;vertical-align:top;margin:0px;padding:2px;}"\); sb\.append\("td\.week{background-color:#f0f8ff;text-align:center;}"\); sb\.append\("td\.day{background-color:#f5f5f5;text-align:right;font-size:0\.75em;}"\); sb\.append\("td\.otherday{background-color:#f5f5f5;color:#d3d3d3;text-align:right;font-size:0\.75em;}"\); sb\.append\("td\.sche{background-color:#fffffff;text-align:left;height:80px;}"\); sb\.append\("img{border:0px;}"\); sb\.append\("span\.small{font-size:0\.75em;}"\); sb\.append\("</style>"\); sb\.append\("</head>"\); sb\.append\("<body>"\); sb\.append\("<p>"\); sb\.append\(username\); sb\.append\("さんのスケジュールです"\); if \(roll\.equals\("1"\)\) { sb\.append\(" \[<a href=\\"/schedule/NewUser\\">ユーザーの追加</a>\]"\); } sb\.append\(" \[<a href=\\"/schedule/Logout\\">ログアウト</a>\]"\); sb\.append\("</p>"\); /\* 日付データを配列に格納 \*/ count = setDateArray\(year, month, day, calendarDay, count\); /\* 年月のリンク作成 \*/ sb\.append\(createMonthLink\(year, month\)\); sb\.append\("<table>"\); sb\.append\( "<tr><td class=\\"week\\">日</td><td class=\\"week\\">月</td><td class=\\"week\\">火</td><td class=\\"week\\">水</td><td class=\\"week\\">木</td><td class=\\"week\\">金</td><td class=\\"week\\">土</td></tr>"\); int weekCount = count / 7; for \(int i = 0; i < weekCount; i\+\+\) { /\* スケジュールの日付画面を作成する \*/ sb\.append\("<tr>"\); for \(int j = i \* 7; j < i \* 7 \+ 7; j\+\+\) { if \(calendarDay\[j\] > 35\) { sb\.append\("<td class=\\"otherday\\">"\); sb\.append\(calendarDay\[j\] - 35\); } else { sb\.append\("<td class=\\"day\\">"\); sb\.append\(calendarDay\[j\]\); } sb\.append\("</td>"\); } sb\.append\("</tr>"\); /\* カレンダーのスケジュール登録画面を作成する \*/ sb\.append\(createScheduleStr\(year, month, i \* 7, calendarDay, userid\)\); } sb\.append\("</table>"\); sb\.append\("</body>"\); sb\.append\("</html>"\); out\.println\(new String\(sb\)\); } /\* スケジュール登録へのリンクを設定する \*/ protected String createScheduleStr\(int year, int month, int startDayNo, int\[\] calendarDay, int userid\) { StringBuffer sb = new StringBuffer\(\); sb\.append\("<tr>"\); for \(int i = startDayNo; i < startDayNo \+ 7; i\+\+\) { if \(calendarDay\[i\] > 35\) { /\* 前月及び翌月の箇所にはアイコンは表示しない \*/ sb\.append\("<td class=\\"sche\\"></td>"\); } else { sb\.append\("<td class=\\"sche\\">"\); sb\.append\("<a href=\\"/schedule/NewSchedule"\); /\* パラメータの作成 \*/ sb\.append\("\?YEAR="\); sb\.append\(year\); sb\.append\("&MONTH="\); sb\.append\(month\); sb\.append\("&DAY="\); sb\.append\(calendarDay\[i\]\); sb\.append\("\\">"\); sb\.append\("<img src=\\"\./img/memo\.png\\" width=\\"14\\" height=\\"16\\">"\); sb\.append\("</a><br>"\); /\* スケジュールの表示 \*/ sb\.append\("<span class=\\"small\\">"\); try { String sql = "SELECT \* FROM schedule WHERE userid = \? and scheduledate = \? ORDER BY starttime"; PreparedStatement ps = con\.prepareStatement\(sql\); String startDateStr = year \+ "-" \+ \(month \+ 1\) \+ "-" \+ calendarDay\[i\]; ps\.setInt\(1, userid\); ps\.setString\(2, startDateStr\); ResultSet rs = ps\.executeQuery\(\); while \(rs\.next\(\)\) { int id = rs\.getInt\("id"\); String starttime = rs\.getString\("starttime"\); String endtime = rs\.getString\("endtime"\); String schedule = rs\.getString\("schedule"\); if \(starttime == null || endtime == null\) { sb\.append\("\* "\); } else { sb\.append\(starttime\.substring\(0, 5\)\); sb\.append\("-"\); sb\.append\(endtime\.substring\(0, 5\)\); sb\.append\(" "\); } sb\.append\("<a href=\\"/schedule/ScheduleView\?ID="\); sb\.append\(id\); sb\.append\("\\">"\); sb\.append\(schedule\); sb\.append\("</a><br>"\); } rs\.close\(\); ps\.close\(\); } catch \(SQLException e\) { log\("SQLException:" \+ e\.getMessage\(\)\); } sb\.append\("</span>"\); sb\.append\("</td>"\); } sb\.append\("</td>"\); } sb\.append\("</tr>"\); return \(new String\(sb\)\); }

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

amadablam
amadablam

2016/12/25 23:43

「うまくいきません」は最もまずい質問の仕方の1つです。うまくいかない状況を具体的に記述しましょう。
amadablam
amadablam

2016/12/26 05:03

JSPでコンパイル・エラーということで「うまくいきません」よりは適切な質問ですが、コンパイル・エラーの場合にはエラー・メッセージを掲載してください。問題解決にはエラー・メッセージの内容が最も重要であり、その情報が抜けていた場合、他人はどのような原因でエラーになっているのか推測できません。回答してくれる人に環境を作成さし、コードをすべて入力させてエラーを再現させようと考えるのは間違っていますよ。もっとも、環境も明示されず、提示されているコードはすべてではないため、それも不可能です。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

JSP

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

Java

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

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。