2012-11-21 4 views
0

Как мы можем использовать дату struts2 тег, чтобы иметь форму ниже:Struts2 Дата Тэг Формат

  • 1-ое декабря 2010
  • второго декабря 2010
  • 3 декабря 2010
  • 5 декабря 2010
+0

редактировать 2RD на 3 ... –

ответ

1

Класс опасности:

 public String execute() { 

    Calendar cal = Calendar.getInstance(); 
    //set date to january 31, 2010 
    cal.set(2010, 0, 31); 
    Date newDate = cal.getTime(); 

    setCustomDate(newDate); 

    return SUCCESS; 

} 

public Date getCustomDate() { 
    return customDate; 
} 

public void setCustomDate(Date customDate) { 
    this.customDate = customDate; 
} 

JSP:

<li> 
    Date format in "dd MMMMM yyyy" 
    --> <strong><s:date name="todayDate" format="dd MMMMM yyyy" /></strong> 
    </li> 

Но если вы хотите дату с префиксами, что вам нужно сделать некоторые ручной работы кода.

проверьте эту ссылку для добавления суффиксов вручную.

How do you format the day of the month to say "11th", "21st" or "23rd" in Java? (ordinal indicator)

+0

это отображение '22 лет, 115 дней ago' –

+1

@JRGalia: Я изменил мой ответ на ваш формат даты. Но если вы хотите добавить суффиксы типа «st», «nd», «rd», вам нужно сделать это вручную. перейдите по этой ссылке для добавления префиксов. http://stackoverflow.com/questions/4011075/how-do-you-format-the-day-of-the-month-to-say-11th-21st-or-23rd-in-java –

+0

Добавить ссылка на ответ в вашем ответе ... –

1

Я только что проверил реализацию в s:date, struts2 использует java.util.SimpleDateFormat, вы можете найти информацию здесь SimpleDateFormat, он показывает весь формат, который вы можете использовать, ни один из них не заполнит ваше требование. поэтому решение должно быть разобрать дату в строке самостоятельно в формате.

Вот Struts2 Дата внедрения

if (date != null) { 
      TextProvider tp = findProviderInStack(); 
      if (tp != null) { 
       if (nice) { 
        msg = formatTime(tp, date); 
       } else { 
        TimeZone tz = getTimeZone(); 
        if (format == null) { 
         String globalFormat = null; 

         // if the format is not specified, fall back using the 
         // defined property DATETAG_PROPERTY 
         globalFormat = tp.getText(DATETAG_PROPERTY); 

         // if tp.getText can not find the property then the 
         // returned string is the same as input = 
         // DATETAG_PROPERTY 
         if (globalFormat != null 
           && !DATETAG_PROPERTY.equals(globalFormat)) { 
          SimpleDateFormat sdf = new SimpleDateFormat(globalFormat, 
            ActionContext.getContext().getLocale()); 
          sdf.setTimeZone(tz); 
          msg = sdf.format(date); 
         } else { 
          DateFormat df = DateFormat.getDateTimeInstance(
            DateFormat.MEDIUM, DateFormat.MEDIUM, 
            ActionContext.getContext().getLocale()); 
          df.setTimeZone(tz); 
          msg = df.format(date); 
         } 
        } else { 
         SimpleDateFormat sdf = new SimpleDateFormat(format, ActionContext 
           .getContext().getLocale()); 
         sdf.setTimeZone(tz); 
         msg = sdf.format(date); 
        } 
       } 
       if (msg != null) { 
        try { 
         if (getVar() == null) { 
          writer.write(msg); 
         } else { 
          putInContext(msg); 
         } 
        } catch (IOException e) { 
         LOG.error("Could not write out Date tag", e); 
        } 
       } 
      } 
     } 
Смежные вопросы