我有一个用例,其中我有一个使用数据表显示的用户列表。
我已经针对每条记录生成了编辑和查看链接。
我想要做的是,一旦我点击查看链接,一个单独的页面应该包含用户的详细信息。
<h:commandLink action="#{profile.goToViewPage(profileVar.profileId)}" value="view" />
因此这些值会正确传递给 Bean。
@Named("profile")
@Scope("view")
public class ProfileDTO {
private String firstName;
private String lastName;
private Date dob;
//Getters and Setters
private void getUser(String selectedProfile) {
this.setDob(new Date());
this.setFirstName("Tested from Page First");
this.setLastName("Test from Page Last");
}
public String goToViewPage(String selectedProfile) {
LOG.debug("Goto View Page called for user id : {}", selectedProfile);
getUser(selectedProfile);
return "pretty:viewprofile"; //Using prettyfaces
}
}
viewPage xhtml 类似于:
<rich:collapsiblePanel header="Basic Details" switchType="client" expanded="true">
<h:panelGroup styleClass="align-table-center-horizontal" layout='block'>
<h:column>
<h:panelGrid columns="2" style="width:100%;" columnClasses="right-column half-width,left-column half-width">
<h:column>
<h:outputText styleClass="headerText" value="First Name" />
</h:column>
<h:column>
<h:inputText value="#{profile.firstName}" />
</h:column>
<h:column>
<h:outputText styleClass="headerText" value="Last Name" />
</h:column>
<h:column>
<h:inputText value="#{profile.lastName}" />
</h:column>
</h:panelGrid>
</h:column>
</h:panelGroup>
</rich:collapsiblePanel>
我用来显示列表的 bean 在会话范围内。
问题:方法获取“goToViewPage”被调用并设置了虚拟数据,但后来再次调用构造函数并且所有数据都丢失了。