我使用p:tabView
將可編輯數據拆分爲段。所有編輯元素都位於p:inplace
組件的內部。該問題特別與p:selectOneMenu
組件有關。p:selectOneMenu值設置爲null,當在p:刷新標籤頁視圖中inplace時
當整個選項卡視圖被刷新時,其他選項卡上的p:selectOneMenu
的值被設置爲空。我不知道爲什麼。這是一個錯誤,還是這是一個錯誤的使用PrimeFaces組件?
環境:
- PrimeFaces 3.4
- MyFaces的2.0.7
- 的IBM WebSphere 7.0
重現錯誤的方式:
- 做一個TabView的有更多的一個標籤
- 發生在一個標籤就地
- 化妝按鈕將更新TabView的
- 選擇selectOneMenu用於值,更改選項卡,單擊刷新並返回到標籤與selectOneMenu用於
的代碼裏面selectOneMenu用於
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui">
<h:head>
<f:facet name="first">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</f:facet>
<title>QMWPSUI</title>
<h:outputScript library="qm" name="qmutils.js" />
<h:outputScript library="qmwpsui" name="process.js" />
</h:head>
<h:body>
<h:form id="main">
<p:blockUI block="main" trigger="refreshButton" widgetVar="block">
<p:graphicImage
value="#{resource['primefaces-qmui:images/waitprogress.gif']}" />
</p:blockUI>
<h3>Test</h3>
<p:commandButton id="refreshButton" widgetVar="refreshButton"
action="#{test.refresh}"
icon="ui-icon-refresh" title="#{i18n['action.reload']}"
onclick="block.show()"
update="tabView"/>
<p:tabView id="tabView" orientation="top" dynamic="TRUE">
<p:tab id="tab1" title="Tab 1" process="@this">
<h:outputLabel value="Type*:" for="type"/>
<p:inplace emptyLabel="Click here to change">
<p:selectOneMenu id="typ" value="#{test.type}" effect="fade"
style="width:300px">
<f:selectItem itemLabel="" itemValue="" />
<f:selectItem itemLabel="Type a" itemValue="a" />
<f:selectItem itemLabel="Type b" itemValue="b" />
<f:selectItem itemLabel="Type c" itemValue="c" />
</p:selectOneMenu>
</p:inplace>
</p:tab>
<p:tab id="tab2" title="Tab 2" process="@this">
</p:tab>
<p:tab id="tab3" title="Tab 3" process="@this">
</p:tab>
</p:tabView>
</h:form>
</h:body>
bean類:
import java.io.Serializable;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
@ManagedBean(name = "test")
@ViewScoped
public class TestBean implements Serializable {
private static final long serialVersionUID = 1L;
private static final Logger log = LoggerFactory.getLogger(TestBean.class);
private String type;
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
builder.append("TestBean [");
if (type != null) {
builder.append("type=");
builder.append(type);
}
builder.append("]");
return builder.toString();
}
public void refresh() {
log.info("Refresh");
log.info("Test = <{}>", this);
}
}
樣本頁面和豆
只是爲了讓情況更一般,似乎也發生在' '的位置,並且沒有' '。 –
Kevin
可能與http://stackoverflow.com/questions/8237555/pselectonemenu-getting-null-on-submit-next有關? –
有沒有其他的解決方案比不使用動態標籤? –