1
selectItems가 포함 된 selectManyListbox를 사용하여 JSF 작성 양식을 얻었습니다 (프로젝트에 사용할 수있는 모든 태그가 있어야 함). selectItems 목록은 항상 비어 있습니다. 페이지가 렌더링 될 때 Listbox에는 아무 것도 없습니다. 여전히, backing 빈의 목록은 3 개의 항목을 포함하고있다. 내가 도대체 뭘 잘못하고있는 겁니까?JSF 2.0 h : selectManyListbox f : selectItems - 항상 비어 있습니다.
백킹 빈 :
@ManagedBean(name = "createProjectBean")
@RequestScoped
public class CreateProjectBean {
public Project getProject() {
return project;
}
public void setProject(Project project) {
this.project = project;
}
private Project project;
private IProjectService projectService;
private FacesContext facesContext;
private MessageFactory mf;
private List<Tag> tags;
public CreateProjectBean() {
project = new Project();
projectService = (IProjectService)ServiceFinder.getInstance()
.findBean("projectService");
mf = new MessageFactory("properties.projects.messages");
tags = projectService.getTags();
}
/* should be the source of tags */
public void setTags(List<Tag> tags) {
this.tags = tags;
}
public List<Tag> getTags() {
return tags;
}
}
그리고 페이지 :
<f:view>
<h:outputText id="error" rendered="false" />
<h:message styleClass="errorMessage" for="error" />
<h:form id="creationForm" >
<h:panelGrid columns="2" width="420">
/* blah, blah, set name and stuff */
<h:selectManyListbox id="box" value = "#{createProjectBean.project.tags}">
<f:converter converterId="tag" />
<f:selectItems value="@{createProjectBean.tags}"
var="tag"
itemValue="#{tag}"
itemLabel="${tag.name}" />
</h:selectManyListbox>
<f:verbatim><br/></f:verbatim>
<h:commandButton value="Create" styleClass="formButton" action="#{createProjectBean.create}"/>
</h:panelGrid>
</h:form>
</f:view>
내가 해당 페이지로 analogia 당을하려고 노력 : http://digitaljoel.wordpress.com/2010/01/11/jsf-2-custom-converter/
내가 작성한 컨버터는 아직 테스트를 거치지 않았다.
HAH에 의해
교체합니다. 참으로 가짜. '@ {..}'은 실제로 무엇입니까? (+1) – Bozho