Spring 12
・複数削除機能を追加しました。
TodoIDの型をStringに変換するなら、複数の値をもらえるようになりましたが、
削除のメソッドを実行する時にバグになってしまいました。
ですから、新しいColumnを作成しました。
このColumnは何も保存していません。
(DataBaseと同じクラスですから、DataBaseで新しいColumnを作成しなければなりません。)
別のクラスを作成するなら、DataBaseで新しいColumnを作成するのは、
必要がなくなると思います。
複数TodoIDを受けるために、DataBaseで新しいColumnを作成しました。
TodoData.java
@Column(nullable = true)
private String multiple;
public String getMultiple() {
return multiple;
}
public void setMultiple(String multiple) {
this.multiple = multiple;
}
メソッドを使えるために、Stringの型からLongの型に変換しました。
MultipleDelete.java
public static Long todo_id(TodoData mydata) {
//get todoID
String multiple = mydata.getMultiple();
//convert to String array
String array_string = multiple.split(",");
//convert to long array
//method needs the long value
Long array_long = new Long[array_string.length];
for (int i = 0; i < array_string.length; i++) {
array_long[i] = Long.valueOf(array_string[i]);
}
//return value
return (Long) array_long;
}
複数削除の実行
TodoController.java
public ModelAndView removeconfirm(TodoData mydata,ModelAndView mav) {
LongtodoID = MultipleDelete.todo_id(mydata);
for(long delete_counter : todoID) {
repository.deleteById(delete_counter);
}
}
・日時の型の変換
変換したの日時をHTMLに渡します。
TodoController.java
public ModelAndView index(@ModelAttribute("formModel") TodoData mydata, ModelAndView mav) {
mav.setViewName("index");
Iterable<TodoData> list = repository.findAll();
ArrayList<String> Convert_Date = new ArrayList<>();
Convert_Date = DateConvert.Date(list,Convert_Date);
mav.addObject("datalist", list);
mav.addObject("Date",Convert_Date);
return mav;
}
日時の変換です。
DateConvert.java
public static ArrayList<String> Date(Iterable<TodoData> list,ArrayList<String> Convert_Date) {
for(TodoData s : list){
String upload_date = s.getUploadDate();
upload_date = upload_date.replaceFirst("(?i)(-)", "年");
upload_date = upload_date.replaceFirst("(?i)(-)", "月");
upload_date = upload_date.replaceFirst("(?i)( )", "日");
upload_date = upload_date.substring(0, 16);
int YEAR = Integer.parseInt(upload_date.substring(0, 4));
int MONTH = Integer.parseInt(upload_date.substring(5, 7));
int DATE = Integer.parseInt(upload_date.substring(8, 10));
MONTH = MONTH - 1;
DATE = DATE - 1;
String week = new String[7];
week[0] = "日";
week[1] = "月";
week[2] = "火";
week[3] = "水";
week[4] = "木";
week[5] = "金";
week[6] = "土";
Calendar YEAR_MONTH_DATE = Calendar.getInstance();
YEAR_MONTH_DATE.set(Calendar.YEAR, YEAR);
YEAR_MONTH_DATE.set(Calendar.MONTH, MONTH);
YEAR_MONTH_DATE.set(Calendar.DAY_OF_MONTH, DATE);
int DAY_OF_WEEK = YEAR_MONTH_DATE.get(Calendar.DAY_OF_WEEK);
upload_date = upload_date.substring(5, 11) + "(" + week[DAY_OF_WEEK] + ")" + upload_date.substring(11, 16);
Convert_Date.add(upload_date);
}
return Convert_Date;
}