jboss 6.1에서 primefaces 3.2 및 mojarra 2.1.7을 사용하고 있습니다. 내가 게으른 로딩 datatable을 구축하려고합니다. datatable 열 중 하나에서 나는 edit 메서드를 호출하기위한 commandlink를 가지고있다. 만약 bean이 conversation 범위라면, edit 메소드는 호출되지 않는다. 범위가 지정된 뷰이면 호출됩니다. 나는 게으른 로딩 데이터 테이블로 작업하기 위해 대화 범위의 빈을 가질 수 없을까?primefaces, lazy load datatable 및 jsf @conversation scope bean
@Named("userBean")
@Stateful
@ConversationScoped
@LoggedIn
public class UserBean implements Serializable, UserBeanLocal {
private static final long serialVersionUID = 1L;
@Inject
private Conversation conversation;
@EJB
private UserManagerBeanLocal userController;
@Inject
private transient FacesContext context;
private User user;
private LazyUserDataModel lazyModel;
public UserBean() {
user = new User();
}
@Override
@PostConstruct
public void createLazyDataModel() {
setLazyModel(new LazyUserDataModel(userController));
}
@Override
@PrePassivate
public void ejbPassivate(){
context = null;
}
@Override
@PostActivate
public void ejbActivate() {
}
@Override
public String create() {
this.conversation.begin();
return "create";
}
@Override
public String edit()
{
System.out.println("editing user");
return "create";
}
}
및
<h:form>
....
<p:dataTable id="userTable" var="usr" value="#{userBean.lazyModel}"
paginator="true"
paginatorTemplate="{FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
rowsPerPageTemplate="5,10,15" paginatorPosition="bottom" rows="10"
currentPageReportTemplate="{currentPage} de {totalPages}">
<p:column headerText="Username">
<h:outputText value="#{usr.name}" />
</p:column>
<p:column>
<p:commandLink value="Edit" action="#{userBean.edit}" actionListener="#{userBean.update}" update="userTable" />
</p:column>
</p:dataTable>
</h:form>
아무도 도와 드릴까요?
감사
켈리