スケジュール表の内容を変更する機能なんですが、変更した部分を赤字で表示したいです。元のコードが以下の通りです。
public String fix(BoardForm form, Model model) { Schedule schedule = ScheduleRecord.selectSchedule(form.getName()); ScheduleRecord.setNewSchedule(new Schedule(form.getName(), form.getDest(), form.getTime(), form.getMemo())); if (!schedule.getDest().equals(form.getDest())) { form.setDest( "<font color:red>"+ form.getDest() + "</font>"); //行き先に変更があれば赤字で表示 } if (!schedule.getTime().equals(form.getTime())) { form.setTime( "<font color:red>" +form.getTime()+"</font>"); //時間に変更があれば赤字で表示 } if (!schedule.getMemo().equals(form.getMemo())) { form.setMemo("<font color:red>" + form.getMemo()+"</font>"); //メモに変更があれば赤字で表示 } model.addAttribute("message", "登録または再入力ボタンを押してください。"); return "fix"; }
このままだと、<font color:red>と</font>が文字と一緒に出力されます。
調べてみると、ANSIエスケープコードという方法があるらしくて、試してみました。
public static final String ANSI_RESET = "\u001B[0m"; public static final String ANSI_RED = "\u001B[31m"; : : if (!schedule.getMemo().equals(form.getMemo())) { form.setMemo(ANSI_RED + form.getMemo() + ANSI_RESET);
しかし、これもうまくいかず、例えばメモのところに66を入力すると、[31m66[0mが出力されます。
ちなみに、System.out.println()の時にANSIエスケープコードはうまくいきました。
どなたか力を貸してください。よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。