1
- JSF 2.0
- Primefaces으로 목록에서 항상 마지막 항목을 제출 보여줍니다 3.4
- 두 개체는 사람
나는 간단한 드롭이 객체 양식 제출 (AJAX 호출)에서 선택을 제출하는 양식에 포함 된 아래로 이동 메뉴 :
<h:form>
....
<p:selectOneMenu converter="personconverter"
value="#{searchperson.viewPerson.relatedTo}" filter="true"
filterMatchMode="startsWith">
<f:selectItems value="#{searchperson.people}" var="person"
itemLabel="#{person.fullName}" itemValue="#{person}" />
</p:selectOneMenu>
....
<p:commandButton value="Save"
actionListener="#{searchperson.updatePerson}" />
</h:form>
서버에 요청을 제출하면 selectOneMenu에 연결된 객체가 올바르게 전달되고 백엔드를이 변경으로 업데이트 할 수 있습니다. 페이지가 다시 렌더링 될 때
는 P의 값 : selectOneMenu은 :
(value="#{searchperson.viewPerson.relatedTo}")
은 그냥 제출 된 새로운 변화를 렌더링하지 않습니다. People 목록의 마지막 Person 객체를 렌더링합니다.
변환기 :
@FacesConverter("personconverter")
public class PersonConverter implements Converter {
@Override
public Object getAsObject(FacesContext arg0, UIComponent arg1, String value) {
People pApi = new People();
Person per = new Person();
try {
per = pApi.getPerson(Long.parseLong(value));
}
catch(Exception e) {
e.printStackTrace();
}
return per;
}
@Override
public String getAsString(FacesContext arg0, UIComponent arg1, Object arg2) {
return String.valueOf(((Person) arg2).getId());
}
}
Object 클래스
@Override
public boolean equals(Object object) {
return true; //just to pass through temporarily
}
@Override
public int hashCode() {
return 0;
}
얼굴-config.xml에
여기은 다른 조각이다
<converter>
<converter-for-class>com.obj.Person</converter-for-class>
<converter-class>com.converter.PersonConverter</converter-class>
</converter
아 - 감사합니다. 필자는 JSF에 비교적 익숙하지 않기 때문에이 두 메소드의 목적을 살펴 보았습니다. 그리고 내가 한 일을 왜 보았는지에 대한 당신의 설명은 완벽하게 이해됩니다. 매우 감사. – user2124871
반갑습니다. JSF와 반드시 관련이있는 것은 아닙니다. 기본 Java의 기본 요소입니다. http://docs.oracle.com/javase/tutorial/java/IandI/objectclass.html – BalusC
Extra PS - 블로그/항목이 내 학습에 큰 도움이되었습니다. – user2124871