Primefaces Picklistbean 没有定义范围,然后 primefaces 选择列表源和目标列表已满,但如果我将 sessionscoped 添加到 Picklistbean,则源和目标列表为空。我想知道为什么当我将 sessionscoped 添加到 Picklistbean 时它显示为空
@ManagedBean(name="pickListBean")
public class PickListBean {
private DualListModel<TrvrTani> tanis;
private DualListModel<TrvrIlac> ilacs;
public DualListModel<TrvrIlac> getIlacs() {
return ilacs;
}
public void setIlacs(DualListModel<TrvrIlac> ilacs) {
this.ilacs = ilacs;
}
public DualListModel<TrvrTani> getTanis() {
return tanis;
}
public void setTanis(DualListModel<TrvrTani> tanis) {
this.tanis = tanis;
}
public PickListBean() {
List<TrvrTani> sourcetani = new ArrayList<TrvrTani>();
List<TrvrTani> targettani = new ArrayList<TrvrTani>();
TrvrTaniDAO tanidao = new TrvrTaniDAO();
List<TrvrTani> taniList = tanidao.findAll();
for (TrvrTani tani : taniList) {
sourcetani.add(new TrvrTani(tani.getTaniid(), tani.getTaniadi(),
tani.getTanikodu()));
}
tanis = new DualListModel<TrvrTani>(sourcetani, targettani);
List<TrvrIlac> sourceilac = new ArrayList<TrvrIlac>();
List<TrvrIlac> targetilac = new ArrayList<TrvrIlac>();
TrvrIlacDAO ilacdao = new TrvrIlacDAO();
List<TrvrIlac> ilacList = ilacdao.findAll();
for (TrvrIlac ilac : ilacList) {
sourceilac.add(new TrvrIlac(ilac.getIlacid(), ilac.getIlacad(),
ilac.getBarkod(), null));
}
ilacs = new DualListModel<TrvrIlac>(sourceilac, targetilac);
}
public void onTransferTani(TransferEvent event) {
StringBuilder builder = new StringBuilder();
for (Object item : event.getItems()) {
builder.append(((TrvrTani) item).getTaniadi()).append("<br />");
}
FacesMessage msg = new FacesMessage();
msg.setSeverity(FacesMessage.SEVERITY_INFO);
msg.setSummary("Items Transferred");
msg.setDetail(builder.toString());
FacesContext.getCurrentInstance().addMessage(null, msg);
}
public void onTransferIlac(TransferEvent event) {
StringBuilder builder = new StringBuilder();
for (Object item : event.getItems()) {
builder.append(((TrvrIlac) item).getIlacad()).append("<br />");
}
FacesMessage msg = new FacesMessage();
msg.setSeverity(FacesMessage.SEVERITY_INFO);
msg.setSummary("Items Transferred");
msg.setDetail(builder.toString());
FacesContext.getCurrentInstance().addMessage(null, msg);
}
}
xhtml
<h:outputText value="Tanı: " />
<p:pickList id="picklist" value="#{pickListBean.tanis}" size="60"
cols="60" var="tani" converter="acconverter"
itemValue="#{tani}" itemLabel="#{tani.taniadi}"
showSourceControls="false" showTargetControls="false"
showCheckbox="false" showSourceFilter="true"
showTargetFilter="true" filterMatchMode="contains">
<f:facet name="sourceCaption">Tanılar</f:facet>
<f:facet name="targetCaption">Eklenen tanılar</f:facet>
<p:ajax event="transfer" listener="#{pickListBean.onTransferTani}" />
<p:column style="width:75%;">
#{tani.taniadi}
</p:column>
</p:pickList>
<br />
<p:message for="picklist" />
<h:outputText value="İlaç: " />
<p:pickList id="picklist2" value="#{pickListBean.ilacs}" size="60"
cols="60" var="ilac" converter="acconverterilac"
itemValue="#{ilac}" itemLabel="#{ilac.ilacad}"
showSourceControls="false" showTargetControls="false"
showCheckbox="false" showSourceFilter="true"
showTargetFilter="true" filterMatchMode="contains">
<f:facet name="sourceCaption">İlaçlar</f:facet>
<f:facet name="targetCaption">Eklenen ilaçlar</f:facet>
<p:ajax event="transfer" listener="#{pickListBean.onTransferIlac}" />
<p:column style="width:75%;">
#{ilac.ilacad}
</p:column>
</p:pickList>
<br />
<p:message for="picklist2" />