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

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

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

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

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Java

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

HTML

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

Q&A

解決済

1回答

2095閲覧

PostgreSQLからの出力結果が改行されない

kumakura

総合スコア8

JSP

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

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Java

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

HTML

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

0グッド

0クリップ

投稿2020/04/06 02:02

解決したいこと

勉強を始めたばかりの初心者です。
Java(jsp、サーブレット)にて`スケジュール管理のシステムを作成しています。

データベース(PostgreSQL)へ登録済みの予定が各日付部分にデータベースから出力されるように作成しているのですが、出力結果を予定毎に改行することができません。
複数予定がある場合1行で記述されてしまいます。

Javaの改行コードを入れ込む、又はout.print("<br>")を追加する等やってみましたが改行させることが出来ませんでした。

ご回答いただければ幸いです。
よろしくお願いします。

JSP(予定の出力部分)

Java

1<%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3<%@ page import="calendar.Top" %> 4<%@ page import="calendar.Cl" %> 5<%@ page import="java.util.Calendar"%> 6<%@ page import="java.sql.ResultSet" %> 7<%@ page import="java.time.LocalDate" %> 8<%@ page import="java.time.LocalDateTime"%> 9<%@ page import="java.time.LocalTime" %> 10<%@ page import="java.time.format.DateTimeFormatter" %> 11<% 12Calendar calendar = Calendar.getInstance(); 13 14int year=0; 15int month=0; 16int day=1; 17 18//前月・来月から飛んできた場合 19String move = request.getParameter("move"); 20String syear = request.getParameter("year"); 21String smonth = request.getParameter("month"); 22 23//表示する年月日の決定 24if(move==null){ 25 26 //現時点の日付 27 year = calendar.get(Calendar.YEAR); 28 month = calendar.get(Calendar.MONTH); 29 30}else{ 31 32 year = Integer.parseInt(syear); 33 month = Integer.parseInt(smonth); 34 35} 36 37int now_year = year; 38int now_month = month; 39int now_day = day; 40 41//いつ分のカレンダーかを決定 42Cl cl = new Cl(now_year,now_month,now_day); 43 44//前月分日付の必要数を計算 45int prevday = cl.prevday(); 46 47//今月分日付の数を計算 48int nowday = cl.nowday(); 49 50//来月分日付の数を計算 51int nextday = cl.nextday(prevday,nowday); 52 53//カレンダー上の初日を決定 54cl.oneday(prevday); 55 56year = cl.year(); 57month = cl.month(); 58day = cl.day(); 59 60calendar.set(year,month,day); 61 62//合計何日必要か 63int maxday = prevday + nowday +nextday; 64 65//合計何週必要か 66int maxweek = maxday/7; 67 68//データベースへ接続 69Top db = new Top(); 70db.open(); 71 72//データベース出力用 73LocalDate daydate; 74java.sql.Date sqlday; 75ResultSet rs; 76 77%> 78 79//中略 80 81 82//予定の出力部分 83<div class="day"> 84 <p> 85 <% cday = cl.days(); %> 86 <% cyear = cl.year(); %> 87 <% qmonth = cl.month()+1; %> 88 <a href="new.jsp?move=prev&year=<%= cyear %>&month=<%= qmonth %>&day=<%= cday %>"class="aday"><% out.println(cday); %></a> 89 </p> 90 <div class="apo"> 91 <% 92 //年月日の変換、データ参照 93 rs = db.getResultSet("select * from calendar where day='"+db.sql(cyear,qmonth,cday)+"'"); 94 while (rs.next()){ 95 //SQL時間データをLocalへ変換 96 java.sql.Time starttimes = rs.getTime("starttime"); 97 java.sql.Time lasttimes = rs.getTime("lasttime"); 98 String title = rs.getString("title"); 99 String schedule = db.schedule(cyear,qmonth,cday,starttimes,lasttimes,title); 100 out.println(schedule); 101 }%> 102 </div> 103 </div>

オリジナルクラス(日付出力について)

Java

1package calendar; 2 3import java.sql.Connection; 4import java.sql.DriverManager; 5import java.sql.ResultSet; 6import java.sql.Statement; 7import java.time.LocalDate; 8import java.time.LocalDateTime; 9import java.time.LocalTime; 10import java.time.format.DateTimeFormatter; 11 12public class Top { 13 14 private String url; 15 private String user; 16 private String password; 17 private Connection conn; 18 private Statement state; 19 private ResultSet rs; 20 21 public Top() { 22 url = "省略"; 23 user = "省略"; 24 password = "省略"; 25 } 26 27 //データベースへの接続する 28 public void open() throws Exception { 29 conn = DriverManager.getConnection(url, user, password); 30 state = conn.createStatement(); 31 } 32 33 //SQL 文を実行した結果の ResultSet を返す 34 public ResultSet getResultSet(String sql) throws Exception { 35 if ( state.execute(sql) ) { 36 return state.getResultSet(); 37 } 38 return null; 39 } 40 41 //データベースを閉じる 42 public void close() throws Exception { 43 if ( rs != null ) rs.close(); 44 if ( state != null ) state.close(); 45 if ( conn != null ) conn.close(); 46 } 47 48 public String starttime(int year,int month,int day,java.sql.Time starttimes) { 49 50 DateTimeFormatter dtformat1 = DateTimeFormatter.ofPattern("HH:mm"); 51 52 if(starttimes==null) { 53 return ""; 54 55 }else { 56 57 //SQL時間データをLocalへ変換 58 LocalTime starttimet = starttimes.toLocalTime(); 59 LocalDateTime starttimel = starttimet.atDate(LocalDate.of(year, month, day)); 60 61 //時間の表示方法指定 62 String stime = dtformat1.format(starttimel); 63 64 return stime; 65 } 66 } 67 68 public String timewhile(int year,int month,int day,java.sql.Time starttimes,java.sql.Time lasttimes) { 69 if(starttimes==null && lasttimes==null) { 70 return ""; 71 }else { 72 return "~"; 73 } 74 } 75 76 public String lasttime(int year,int month,int day,java.sql.Time lasttimes) { 77 78 DateTimeFormatter dtformat1 = DateTimeFormatter.ofPattern("HH:mm"); 79 80 if(lasttimes==null) { 81 return ""; 82 }else { 83 84 //SQL時間データをLocalへ変換 85 86 LocalTime lasttimet = lasttimes.toLocalTime(); 87 LocalDateTime lasttime = lasttimet.atDate(LocalDate.of(year, month, day)); 88 89 //時間の表示方法指定 90 String ltime = dtformat1.format(lasttime); 91 92 return ltime; 93 } 94 } 95 96 public String titlewhile(int year,int month,int day,java.sql.Time starttimes,java.sql.Time lasttimes) { 97 if(starttimes==null && lasttimes==null) { 98 return ""; 99 }else { 100 return ":"; 101 } 102 } 103 104 public java.sql.Date sql (int year,int month,int day){ 105 LocalDate daydate = LocalDate.of(year, month, day); 106 java.sql.Date sqlday = java.sql.Date.valueOf(daydate); 107 return sqlday; 108 } 109 110 public String schedule(int year,int month,int day,java.sql.Time starttimes,java.sql.Time lasttimes,String titles){ 111 DateTimeFormatter dtformat1 = DateTimeFormatter.ofPattern("HH:mm"); 112 113 String starttime=""; 114 String timewhile=""; 115 String lasttime=""; 116 String ttwhile=""; 117 String title=""; 118 119 if(starttimes==null) { 120 starttime=""; 121 122 }else { 123 124 //SQL時間データをLocalへ変換 125 LocalTime starttimet = starttimes.toLocalTime(); 126 LocalDateTime starttimel = starttimet.atDate(LocalDate.of(year, month, day)); 127 128 //時間の表示方法指定 129 starttime = dtformat1.format(starttimel); 130 131 } 132 133 if(lasttimes==null) { 134 System.out.print(""); 135 }else { 136 137 //SQL時間データをLocalへ変換 138 139 LocalTime lasttimet = lasttimes.toLocalTime(); 140 LocalDateTime lasttimel = lasttimet.atDate(LocalDate.of(year, month, day)); 141 142 //時間の表示方法指定 143 lasttime = dtformat1.format(lasttimel); 144 145 } 146 147 if(starttime=="" && lasttime=="") { 148 timewhile=""; 149 }else { 150 timewhile="~"; 151 } 152 153 if(starttime=="" && lasttime=="") { 154 ttwhile=""; 155 }else { 156 ttwhile=":"; 157 } 158 159 title = titles; 160 161 String schedule = starttime+timewhile+lasttime+ttwhile+title; 162 return schedule; 163 164 } 165} 166

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

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

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

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

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

m.ts10806

2020/04/06 02:13

>Javaの改行コードを入れ込む、又はout.print("<br>")を追加する等やってみましたが どこにどのように書いたのでしょうか。 コード提示してください
guest

回答1

0

自己解決

すみません、凡ミスであることに気付きました。
out.print("<br>")の"が片方抜けていました。

JSPを以下のコードに直すことで問題なく改行出来ました。

Java

1<div class="days"> 2 <div class="day"> 3 <p> 4 <% int qmonth = cl.month()+1; %> 5 <a href="new.jsp?move=prev&year=<%= cyear %>&month=<%= qmonth %>&day=<%= cday %>"class="adaysun"><% out.println(cday); %></a> 6 </p> 7 <div class="apo"> 8 <% 9 //年月日の変換、データ参照 10 rs = db.getResultSet("select * from calendar where day='"+db.sql(cyear,qmonth,cday)+"'"); 11 while (rs.next()){ 12 //SQL時間データをLocalへ変換 13 java.sql.Time starttimes = rs.getTime("starttime"); 14 java.sql.Time lasttimes = rs.getTime("lasttime"); 15 String title = rs.getString("title"); 16 String schedule = db.schedule(cyear,qmonth,cday,starttimes,lasttimes,title); 17 out.println(schedule); 18 out.println("<br>"); 19 }%><br> 20 </div> 21 </div>

投稿2020/04/06 02:43

kumakura

総合スコア8

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問