解決したいこと
勉強を始めたばかりの初心者です。
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
回答1件
あなたの回答
tips
プレビュー