2011-08-07 4 views
0

selectOneMenu -list에서 선택한 텍스트를 출력해야합니다. 내 코드는 다음과 같습니다.구성 요소를 선택하고 디스플레이 - Ajax

<h:selectOneMenu value="#{DataForm.stationed}" id="globalFilter" onchange="carsTable.filter()" style="width:350px;font-size:13px;" > 
    <f:selectItems value="#{DataForm.listHotel}" var="user" itemValue="#{user[1]}" itemDisabled="false" itemLabel="#{user[1]}" /> 
    <h:outputText value="#{carsTable[1]}" style="width:350px"/> 
</h:selectOneMenu> 

어떻게 작성합니까?

편집

이 목록 상자는 당신이 중첩 된 <h:outputText/> 먼저, 정말 그 위치에 이해가되지 않습니다 제거해야합니다 생각 <datatable>

<h:body> 
    <h:form id="form1" > 
     <p:dataTable var="car" value="#{DataForm.listHotels}" widgetVar="carsTable" paginator="true" rows="10" onRowSelectComplete="carDialog.show()" emptyMessage="No hospital found with given criteria" selectionMode="single" onRowSelectUpdate="growl" style="width:1400px;font-size:13px;"> 

      <h:selectOneMenu value="#{DataForm.stationed}" id="globalFilter" onchange="carsTable.filter()" style="width:350px;font-size:13px;" > 
       <f:selectItems value="#{DataForm.listHotel}" var="user" itemValue="#{user[1]}" itemDisabled="false" itemLabel="#{user[1]}" /> 
       <h:outputText value="#{carsTable[1]}" style="width:350px"/> 
      </h:selectOneMenu> 

     </p:dataTable> 

     <f:ajax render= "@form1" > 
      <h:selectOneMenu value="#{DataForm.stationed}"> 
       <f:selectItems value="#{DataForm.listHotels}" var="item" itemValue="#{DataForm.listHotels}" itemLabel="#{DataForm.listHotels}" /> 
      </h:selectOneMenu> 
     </f:ajax> 
    </h:form> 
</h:body> 

답변

0

에 있습니다. 또한 질문과 예제 코드에서 PrimeFaces가 어떤 문제와 관련이 있는지 명확하게 알 수는 없습니다.

선택한 값을 출력하려면 단순히 #{DataForm.stationed}이라는 식을 인쇄하십시오.이 값은 선택한 값을받을 바인딩이기 때문에 간단히 인쇄하십시오.

다음 예제는 AJAX를 통해이를 보여 주지만 작업 및 일반 양식 제출을 사용한 경우에도 같은 방식으로 작동합니다.

Facelet

<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:f="http://java.sun.com/jsf/core"> 
    <h:head /> 

    <h:body> 

     <h:form id="form"> 

      <f:ajax render="form"> 
       <h:selectOneMenu value="#{selectOneMenuBean.value}"> 
        <f:selectItems value="#{selectOneMenuBean.items}" var="item" itemValue="#{item}" itemLabel="#{item}" /> 
       </h:selectOneMenu> 
      </f:ajax> 

      Selected value: #{selectOneMenuBean.value} 

     </h:form> 

    </h:body> 
</html> 

@ViewScoped 
@ManagedBean 
public class SelectOneMenuBean { 

    private List<String> items = Arrays.asList("a", "b", "c"); 
    private String value; 

    public List<String> getItems() { 
     return items; 
    } 

    public String getValue() { 
     return value; 
    } 

    public void setValue(String value) { 
     this.value = value; 
    } 

} 

추신 코드 예에서 빈에 대한 EL 이름은 대문자로 시작합니다. 전형적인 협약과는 조금 다릅니다. 또한 이름과 유형에 약간의주의를 기울일 수도 있습니다. 빈은 listHotel이라는 것을 반환하지만, 이것은 user이라는 변수에 할당되고 정수로 인덱싱됩니다. 이름을 정렬 (예 : 컬렉션 이름 = users, 변수 이름 user)하고 색인 대신 속성을 사용하는 것이 좋습니다 (예 : user.name).

+0

안녕하세요, 예외가 있습니까, 단서가 있습니까? 'SEVERE : 오류 렌더링보기 [/test.xhtml] javax.faces.FacesException : 에 알 수없는 ID 'form'이 있습니다 - 구성 요소의 컨텍스트에서 찾을 수 없습니다. j_idt15' – Illep

+0

양식에 ID를 제공해야합니다. ID로 그것을 참조하기 위해'form'을 사용합니다. 이 예제에서는 간단한 ID이므로 ajax 태그에서 도달 할 수 있어야합니다. 주어진대로 예제를 시도하고 깨질 때까지 상황에 맞게 신중하게 수정하십시오. 또는 ajax 태그에'render = "@ form"'을 사용할 수있다. 그러면 이름에 신경 쓰지 않고 구성 요소가 중첩 된 양식을 찾습니다. –

+0

제 질문을 편집하여 문제에 대한 정보를 조금 추가했습니다. 'render = "@ form"'을 추가 한 후에도 여전히 같은 예외가 발생합니다. – Illep

관련 문제