2012-07-25 3 views
1

북마크 가능 URL 및 GET 메소드를 사용합니다.사용자 정의 JSF EL 함수, 날짜 변환기 및 현재 컴포넌트

날짜가 포함 된 매개 변수가 있으며 기본 DateTime 변환기를 사용하여 변환됩니다.

<f:viewParam name = "parameter" value = "#{model.parameter}" converter = "javax.faces.DateTime" /> 

로 (이 완벽하게 작동하고 우리는 우리가 올바른 형식의 문자열로 Date 매개 변수를 변환 할 필요가이 페이지로 연결되는 링크 (예 : <h:link>로)를 생성 할 때 매개 변수는 문자열

과에서 컨버터입니다 <f:param> 태그는 변환기를 지원하지 않습니다. Date.toString()의 기본 형식은 javax.faces.converter.DateTimeConverter으로 구문 분석되지 않습니다.

다음 해결책을 생각해 냈지만 더 우아하게 할 수 있다고 생각합니다.

나는 사용자 정의 EL 기능 convertDate

다음 구현

public static String convertDate(Date date, UIComponent uiComponent) 
{ 
    DateTimeConverter dateTimeConverter = new DateTimeConverter(); 
    return dateTimeConverter.getAsString(FacesContext.getCurrentInstance(), uiComponent, date); 
} 

아이디어는 날짜를 변환 할 기본 javax.faces.convert.DateTimeConverter을 사용하는 것입니다와

<f:param name="parameter" value="#{ func:convertDate(model.someDate, component) }" /> 

를 정의하지만 난 UIComponent 대응에 대한 참조가 필요합니다 .

#{component}의 사용법이 맞습니까? 더 좋은 방법이 있습니까?

답변

1

DateTimeConverter은 커버 아래에 SimpleDateFormat을 사용합니다. 대신 #{component} 인수를 제거 할 수 있도록이 매개 변수를 사용할 수도 있습니다.

관련 문제