[
https://jira.jboss.org/jira/browse/WBRI-258?page=com.atlassian.jira.plugi...
]
Dan Allen commented on WBRI-258:
--------------------------------
Here is an example that demonstrates the problem:
DataList.java
public
@Named
@ConversationScoped
class DataList implements Serializable {
private List<Data> data;
private DataModel dataModel;
@PostConstruct
public void onCreate() {
data = new ArrayList<Data>();
data.add(new Data("one"));
data.add(new Data("two"));
}
public List<Data> getData() {
return data;
}
public DataModel getDataModel() {
if (dataModel == null) {
dataModel = new ListDataModel(data);
}
return dataModel;
}
public void act() {
System.out.println(dataModel.getRowData());
}
}
Data.java
public class Data {
private String value;
public Data() {
}
public Data(String value) {
this.value = value;
}
public String getValue() {
return value;
}
@Override
public String toString() {
return "Data" + hashCode() + "[ value = " + value + " ]";
}
}
dataList.xhtml
<h:form>
<h:dataTable var="_data"
value="#{dataList.dataModel}">
<h:column>
<f:facet name="header">Value</f:facet>
<h:commandLink action="#{dataList.act}"
value="#{_data.value}"/>
</h:column>
</h:dataTable>
</h:form>
The conversation needs to be restored in the restore view phase in
JSF 2
------------------------------------------------------------------------
Key: WBRI-258
URL:
https://jira.jboss.org/jira/browse/WBRI-258
Project: Web Beans
Issue Type: Bug
Affects Versions: 1.0.0.PREVIEW1
Reporter: Dan Allen
Fix For: 1.0.0.PREVIEW2
JSF 2 walks the tree in the RestoreView phase, whereas JSF 1 does not. The timing causes
a problem if you have a value expression bound to a conversation-scoped bean. The solution
is to use a ComponentEventListener to restore the conversation rather than a phase
listener. The listener should observe the PostRestoreStateEvent on UIViewRoot. Component
listeners can be registered programmatically. WebBeans should detect which version of JSF
is in use and act accordingly.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira