2014-09-16 2 views
2

일부 문서를 열려고합니다. 클라이언트 노트 내부의 viewPanel에서 가져옵니다. 응용 프로그램은 웹에서도 실행됩니다.클라이언트 메모의 편집 모드에 액세스 할 때 xpages 오류가 발생했습니다.

문서를 열었을 때.

예외 javax.faces.model.SelectItem

java.lang.String의 호환되지 않는 : 나는 다음과 같은 오류가

<xp:button value=" Editare" id="buttonEdit" 
      rendered="#{javascript:!currentDocument.isEditable()}" > 

     <xp:eventHandler event="onclick" submit="true" refreshMode="complete"> 
      <xp:this.action> 
       <xp:changeDocumentMode mode="edit" var="Contr"></xp:changeDocumentMode> 
      </xp:this.action> 
     </xp:eventHandler> 
</xp:button> 

: 읽기 모드에서 다음 편집 버튼을 클릭합니다

이것은 메모 클라이언트에서만 발생합니다. 스택 추적에서

는 :

var a = [].concat(@Unique(@DbColumn(dbname, "vwA", 0))).sort(); 
var b = @Unique(@DbColumn(@DbName(),"vwB",0)); 
return a.concat(b); 

모든 아이디어 이유/방법 :

com.sun.faces.renderkit.html_basic.MenuRenderer.getOptionNumber(Unknown Source) 
com.sun.faces.renderkit.html_basic.MenuRenderer.renderSelect(Unknown Source) 
com.sun.faces.renderkit.html_basic.MenuRenderer.encodeEnd(Unknown Source) 
com.ibm.xsp.renderkit.html_basic.MenuRenderer.encodeEnd(Unknown Source) 
.... .... 

하나 하나 콤보를 삭제 한 후, 나는 오류가 값이있는이 하나입니다 것으로 나타났습니다 이 문제를 해결할 수 있습니까?

+1

예외는 일반적으로 콤보 상자 또는 그 안에 중첩 된 SelectItem을 나타냅니다. 페이지의 해당 부분을 게시하십시오. 게시 한 부분은 절대적으로 간단합니다. 이 종류의 코드는 브라우저와 XPinC 앱 모두에서 Xpages에서 매우 일반적이라고 생각합니다. –

+1

@LotharMueller 수많은 comboBox 요소를 사용하고 있습니다. 문제가 지속되는 콤보 상자를 정확히 찾을 수 있습니까? –

+0

자세한 런타임 오류 메시지에 없다면 아마도 스택 추적 어딘가에있을 것입니다. 엉덩이에서 그것을 통해 당신의 방법을 작동하려고합니다. 대체로 콤보의 ID 또는 무엇인가와 비슷한 친숙한 요소를 찾을 수 있습니다. –

답변

3

SSJS 변수 dbname에서 오류가 발생할 가능성이 큽니다. 이 변수에 어떤 값이 설정되어 있는지 다시 확인하십시오.

나는 같은 오류를 얻을 java.lang.String incompatible with javax.faces.model.SelectItem dbname배열문자열 대신하는 경우.

+0

지금 찾았습니다. session.getServerName은 Notes 클라이언트에서 아무것도 반환하지 않습니다. –

+0

나는 그것을 바로 잡았고 이제는 효과가있다. 당신의 도움을 주셔서 감사합니다! –

0

슬프게도 스택 추적은 오류를 격리 할 때 많은 도움이되지 않습니다. 그러나, 당신 selectItems (복수)의 값이 여러 값을 가진 무언가가 아닌 문자열로 설정된다는 것이 문제인 것 같아요. selectItem (단수)은 문자열을 값으로 가질 수 있지만 selectItems (복수형)는 포함 할 수 없습니다. 나는이 시도하는 경우, 그것은 viewScope 경우 작동하지 않을 것입니다,

<xp:comboBox id="emailTypeCB1" value="#{newOrgDoc.EMailType}"> 
    <xp:this.defaultValue><![CDATA[#{javascript:var keywordChoices = new TS_Keywords(); 
var tmp = keywordChoices.Lookup("Contact/email types", true); 
return keywordChoices.getDefaultValue();}]]></xp:this.defaultValue> 
    <xp:selectItem itemLabel="-- choose --" id="selectItem14"> 
    </xp:selectItem> 
    <xp:selectItems id="selectItems12"> 
     <xp:this.value><![CDATA[#{javascript:return new TS_Keywords().Lookup("Contact/email types", true);}]]></xp:this.value> 
    </xp:selectItems> 
</xp:comboBox> 

그러나이 하나이기 때문에

<xp:selectItems> 
    <xp:this.value><![CDATA[#{javascript:applicationScope.globalSettings.allCurrencies}]]></xp:this.value> 
</xp:selectItems> 

:

그래서, 콤보 상자에 대한 selectItems의이 세트는 유효합니다 .myChoices는 문자열 이었지만 값이 여러 개인 것은 아닙니다 :

<xp:comboBox id="emailTypeCB1" value="#{newOrgDoc.EMailType}"> 
    <xp:selectItems id="selectItems12"> 
     <xp:this.value><![CDATA[#{javascript:viewScope.myChoices;}]]></xp:this.value> 
    </xp:selectItems> 
</xp:comboBox> 

나는 차이가 XPiNC와 브라우저에서 각각 하나씩 열었지만 값이 다르게 설정되었습니다. Notes에있을 때 문자열로 끝납니다.

+0

과 같은 익숙한 요소가 표시되지 않습니다. 내 질문을 업데이트/나는이 문제를 일으키는 콤보 박스를 발견했다고 생각합니다. –

+1

session.getServerName은 Notes 클라이언트에서 아무것도 반환하지 않습니다. 간단한 문자열로 수정하면 이제 작동합니다. 도와 주셔서 감사합니다. @DavidNavarre. –

관련 문제