1 22 23 package org.meshcms.taglib; 24 25 import java.io.*; 26 import java.text.*; 27 import java.util.*; 28 import org.meshcms.core.*; 29 import org.meshcms.util.*; 30 31 34 public final class LastModified extends AbstractTag { 35 public static final String DATE_NORMAL = "normal"; 36 public static final String DATE_FULL = "full"; 37 public static final String MODE_STATIC = "static"; 38 public static final String MODE_ALL = "all"; 39 public static final String MODE_HIDDEN = "hidden"; 40 41 private String date; 42 private String mode; 43 private String pre; 44 private String post; 45 private String update; 46 47 public void setDate(String date) { 48 this.date = date; 49 } 50 51 public void setMode(String mode) { 52 this.mode = mode; 53 } 54 55 public void setPre(String pre) { 56 this.pre = pre; 57 } 58 59 public void setPost(String post) { 60 this.post = post; 61 } 62 63 public void writeTag() throws IOException { 64 Writer w = getOut(); 65 mode = Utils.noNull(mode); 66 long time = WebUtils.getLastModifiedTime(request); 67 68 if (mode.equals(MODE_ALL) || (!mode.equals(MODE_HIDDEN) && 69 FileTypes.isLike(pagePath.getLastElement(), "html"))) { 70 Locale locale = WebUtils.getPageLocale(pageContext); 71 DateFormat df; 72 73 if (date != null && date.equals(DATE_FULL)) { 74 df = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.SHORT, 75 locale); 76 } else { 77 df = DateFormat.getDateInstance(DateFormat.MEDIUM, locale); 78 } 79 80 if (pre != null) { 81 w.write(pre); 82 } 83 84 w.write(df.format(new Date(time))); 85 86 if (post != null) { 87 w.write(post); 88 } 89 } else { 90 w.write(" "); 91 } 92 93 if (Utils.isTrue(update)) { 94 webSite.getFile(pagePath).setLastModified(time); 95 } 96 } 97 98 public String getDate() { 99 return date; 100 } 101 102 public String getMode() { 103 return mode; 104 } 105 106 public String getPre() { 107 return pre; 108 } 109 110 public String getPost() { 111 return post; 112 } 113 114 public String getUpdate() { 115 return update; 116 } 117 118 public void setUpdate(String update) { 119 this.update = update; 120 } 121 } 122 | Popular Tags |