2014-02-19 4 views
0

나는 이것에 대한 기존 게시물을 읽었습니다. 아무도 내 사건에 어울리지 않는다.<h : selectOneMenu> 옵션 중 하나에서만 "유효성 검사 오류 : 값이 유효하지 않습니다."

내 프로그램에서 나는 h : selectOneMenu의 무리를 사용했고 모두 잘 작동합니다. selectOneMenu, 내가 하나가 특정 옵션, 내가 얻을 선택하는 경우 "taskForm을 : taskDropDown가 : 유효성 검증 오류 : 값이 유효하지 않습니다"코드가

:

<h:selectOneMenu id="taskDropDown" value="#{fetchQuery.taskName}"> 
    <f:selectItem itemValue="" itemLabel="Select.." /> 
    <f:selectItems value="#{getInitiative.allTaskNames}" var="t" 
     itemLabel="#{t}" itemValue="#{t}" /> 
    <f:ajax listener="#{getInitiative.taskChosen()}" immediate="false" /> 
</h:selectOneMenu> 

이 하나의 특정 시간 동안 그 제외 여기에서 "getInitiative.allTaskNames"는 String의 배열입니다. 나는이 옵션을 선택하면

[Identify appropriate tests/coverage, Build scripts in Selenium for identified UI tests, Build scripts identified in SOATest Service tests, Identifiy appropriate timing for execution of scripts, Identifiy appropriate reporting metrics , Modify dashboard to run scheduled tests, Identify new database to store common test results, Design new web UI for IMPACT automation , Implement reporting into the database, Build new web UI for IMPACT automation , ytugjkh]

"IMPACT 자동화를위한 새로운 웹 UI를 구축"오류가 발생하고 아약스 부분이 유발되지 않은 : 이것은 내가 디버그 창을 확인할 때 포함 된 내용입니다.

은 일반적으로 오류가 발생하기 때문에 두 가지 이유 중 하나 :

"동일"방법은 개체에 대한 나뉩니다. String을 사용하고 있으므로 equal()이 좋을 것입니다.

데이터 값이 변경됩니다. 배열은 한 번만 채워지고 더 이상 변경되지 않기 때문에 아마 그렇지 않을 것입니다. 또한, 배열의 다른 옵션은 정상적으로 작동합니다.

+0

'fetchQuery.taskName'과'getInitiative.allTaskNames'의 요소들은 같은 타입의 것들입니다. –

+0

@LuiggiMendoza allTaskNames는 String [] 유형입니다. 그리고 fetchQuery.taskName은 String 타입이다. 그들은 일치한다. (다른 옵션은이 특정 옵션을 제외하고는 잘 작동합니다.) – bookmonkie

+0

이 옵션 또는 선택하는 첫 번째 옵션으로 만 발생합니까? –

답변

0

선택한 값이 selectOneMenu에있는 값 목록에 없을 때 발생할 수 있습니다. DataBase에 데이터를 저장하는 동안 원하지 않는 문자가 포함 된 것처럼 값의 내부 변환이 다른 경우에 발생할 수 있습니다. 디버그 모드 (오류를 일으키는 두 속성 값 submitValue 및 value를 표시하는 JSF 페이지)에서 JSF 페이지를 열고 문제의 원인이되는 값을 찾고 데이터베이스에서 값을 수동으로 다시 변경하고 확인하십시오. 작동 할 수도 있습니다.

관련 문제