2014-02-26 2 views
1

두 개의 캘린더가 시작일과 종료일 두 개 있습니다. 내가 오류 메시지를 수신하고 updateAccount 방법을 트리거하도록 명령 단추를 클릭 할 때 :<p : 캘린더 변환 오류 설정 값

Conversion Error setting value 'Tue Feb 26 16:41:43 EST 2013' for 'null Converter'.Conversion Error setting value 'Tue Feb 26 16:41:43 EST 2013' for 'null Converter'. 
Conversion Error setting value 'Tue Feb 25 16:41:43 EST 2014' for 'null Converter'.Conversion Error setting value 'Tue Feb 25 16:41:43 EST 2014' for 'null Converter'. 

있는 명령은 SQL 쿼리에 대한 매개 변수로하여 selectmenu의 값 및 캘린더와 함께 페이지를 다시로드해야합니다. 달력에 할당 된 값은 Date 유형입니다. 달력의 출력이 String 유형이고 Date 유형의 변수에 할당하려고하기 때문에이 오류가 발생합니까? 온라인에서 찾은 예제에서 변환기가 필요하지 않았습니다. 그게 잘못된거야? 그렇다면이 오류 메시지를 어떻게 해결할 수 있습니까?

내 JSF 페이지 :

<f:metadata> 
    <f:viewParam name="account" value="#{accountAnalysisBean.account}" /> 
    <f:viewParam name="start" value="#{accountAnalysisBean.start}" /> 
    <f:viewParam name="end" value="#{accountAnalysisBean.end}" />  
    <f:viewAction action="#{accountAnalysisBean.pullData}" /> 
</f:metadata> 

<h:form> 
    <p:panelGrid columns="6"> 
    <f:facet name="header"> 
    <p:selectOneMenu id="pickAccount" value="#{accountAnalysisBean.pickAccount}" required="true" >  
    <f:selectItems value="#{editAccountBean.allAccounts}" />         
     </p:selectOneMenu> 
     <h:outputLabel value="Start Date: " /> 
     <p:calendar id="start" value="#{accountAnalysisBean.start}" pattern="MM/dd/yyyy" navigator="true" /> 
     <h:outputLabel value="End Date: " /> 
     <p:calendar id="end" value="#{accountAnalysisBean.end}" pattern="MM/dd/yyyy" navigator="true" /> 
     <p:commandButton value="Get Account" action="#{accountAnalysisBean.updateAccount}" > 
      <f:param name="start" value="#{accountAnalysisBean.start}"/> 
      <f:param name="end" value="#{accountAnalysisBean.end}"/>  
      <f:param name="account" value="#{accountAnalysisBean.id}"/> 
     </p:commandButton> 
     </f:facet> 
    </p:panelGrid> 
</h:form> 

내 콩 : 당신이

<f:viewParam name="start" value="#{accountAnalysisBean.start}" /> 
<f:viewParam name="end" value="#{accountAnalysisBean.end}" /> 

그 속성을 사용하는

@ManagedBean 
@ViewScoped 
public class AccountAnalysisBean { 

private String account = ""; 
private String id = ""; 
private String pickAccount = ""; 
private Date start; 
private Date end; 

//gettters and setters 

public void pullData() { 

    if (account != "") { 

     //pull various fields from database given account value 
    } else {  
     //set default null values 
    } 
} 

public void updateAccount() { 

fix = DAOFactory.getInstance("fix_site2.jdbc"); 
datalist = fix.getMyDataDAO(); 
id = datalist.findAccountID(pickAccount); //returns an ID from a DB given account selected from menu 

ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext(); 
ec.redirect(ec.getRequestContextPath() + "/AccountAnalysis.xhtml?account=" + id + 
       "&start=" + start + "&end=" + end + "&includeViewParams=true"); 
} 

//remained of code omitted for clarity 

} 

내가 JSF 2.2 Primefaces 4

답변

1

을 사용하고 있습니다입니다.개체, 요청 매개 변수는 String이므로 변환기가 필요합니다.

<f:viewParam name="start" value="#{accountAnalysisBean.start}" converter="javax.faces.DateTime"> 

.

크레딧 : JSF 2.0: <f:viewParam> and default converters

+0

Michele. 그 오류 메시지가 해결되었지만 지금은 'j_idt2 :'를 받았습니다. Wed Feb 27 09:11:55 EST 2013 '을 (를) 날짜로 이해할 수 없습니다. 다른 작업이 필요합니까? 초기 페이지로드의 기본값은 'private Date start = new DateTime(). minusMonths (12) .toDate();'입니다. commandButton을 클릭하면이 오류가 발생합니다. – Stevenyc091

+1

@Steve - 기본 형식이 "MON dd, YYYY"인 경우 변환기의 형식을 지정해야합니다. – kolossus

+0

@kolossus 형식을 정의 할 수 있도록' '표기법을 대신 사용하십시오. 구성 요소 안에''? 내가 그렇게 할 때도 같은 오류가 발생합니다. – Stevenyc091

관련 문제