JSTL/JSP에서 java.util.Date가 주어지면 다음 날을 어떻게 찾나요?

StackOverflow https://stackoverflow.com/questions/74248

  •  09-06-2019
  •  | 
  •  

문제

JSTL/JSP 페이지에 내 애플리케이션의 java.util.Date 개체가 있습니다.그 날을 찾아야 해 ~ 후에 해당 개체가 지정한 날짜입니다.<jsp:scriptlet>을 사용하여 Java를 사용하고 java.util.Calendar를 사용하여 필요한 계산을 수행할 수 있지만 이는 나에게 서투르고 우아하지 않게 느껴집니다.

완전한 Java로 전환하지 않고도 이 목적을 달성하기 위해 JSP 또는 JSTL 태그를 사용할 수 있는 방법이 있습니까? 아니면 후자가 이를 달성하는 유일한 방법입니까?

도움이 되었습니까?

해결책

나는 JSP에 Java 코드를 넣는 것을 좋아하지 않습니다.

이 작업을 수행하려면 정적 메서드와 taglib를 사용하겠습니다.

그냥 내 생각이야.이 문제를 해결하는 방법에는 여러 가지가 있습니다.

public static Date addDay(Date date){
   //TODO you may want to check for a null date and handle it.
   Calendar cal = Calendar.getInstance();
   cal.setTime (date);
   cal.add (Calendar.DATE, 1);
   return cal.getTime();
}

기능.tld

<?xml version="1.0" encoding="UTF-8" ?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
  version="2.0">
  <description>functions library</description>
  <display-name>functions</display-name>
  <tlib-version>1.1</tlib-version>
  <short-name>xfn</short-name>
  <uri>http://yourdomain/functions.tld</uri>
  <function>
    <description>
      Adds 1 day to a date.
    </description>
    <name>addDay</name>
    <function-class>Functions</function-class>
    <function-signature>java.util.Date addDay(java.util.Date)</function-signature>
    <example>
      ${xfn:addDay(date)}
    </example>
  </function>
</taglib>

다른 팁

이것이 초기 질문에 대한 답은 아니지만 다음을 수행하여 java.util.Calendar를 진행하는 번거로움을 없앨 수 있습니다.

// Date d given
d.setTime(d.getTime()+86400000);

스크립틀릿을 사용하거나 자신만의 태그를 작성해야 합니다.참고로 Calendar를 사용하면 다음과 같습니다.

Calendar cal = Calendar.getInstance();
cal.setTime (date);
cal.add (Calendar.DATE, 1);
date = cal.getTime ();

정말 끔찍해요.

불행히도 표준 JSP/JSTL 라이브러리에는 이 날짜 계산을 수행할 수 있는 태그가 없습니다.

가장 간단하고 우아하지 못한 해결책은 일부 스크립틀릿 코드를 사용하여 계산을 수행하는 것입니다.당신은 이것이 투박한 해결책이라고 생각한다고 이미 밝혔으며 나도 당신의 의견에 동의합니다.내가 당신이라면 이것을 얻기 위해 아마도 사용자 정의 JSP taglib를 작성할 것입니다.

일반적으로 JSP에는 데이터 로직이 없어야 한다고 생각합니다.컨트롤러에서 표시하는 데 필요한 모든 데이터를 가져와야 하며 모든 논리는 표시되는 내용이 아니라 데이터가 표시되는 방식에 관한 것이어야 합니다.이는 일반적으로 사용자 정의 태그를 추가하는 것보다 훨씬 간단하고 코드/XML이 훨씬 적습니다.

그리고 재사용이 발생하지 않는다면 실제로 작은 스크립틀릿이 taglib XML보다 훨씬 더 나쁠까요?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top