Moin, moin,
habe mit untigen Code versucht eine orderingList mit einem Converter zu versorgen.
Klappt ganz gut beim Event "onorderedchanged", aber leider nur einmal.
Beim 2.ten Mal krachts:
java.lang.IllegalStateException: sevenwonder.Wonder
javax.faces.component.StateHolderSaver.restore(StateHolderSaver.java:109)
javax.faces.component.UIComponentBase.restoreAttachedState(UIComponentBase.java:1441)
org.richfaces.component.UIOrderingList$ValueHolder.restoreState(UIOrderingList.java:196)
org.richfaces.component.UIOrderingList.restoreState(UIOrderingList.java:730)
org.richfaces.component.html.HtmlOrderingList.restoreState(HtmlOrderingList.java:1397)
javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:1166)
javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:1182)
javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:1182)
javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:1182)
javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:1182)
org.ajax4jsf.application.AjaxStateManager.restoreView(AjaxStateManager.java:439)
com.sun.faces.application.ViewHandlerImpl.restoreView(ViewHandlerImpl.java:316)
org.ajax4jsf.application.ViewHandlerWrapper.restoreView(ViewHandlerWrapper.java:107)
com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:176)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:104)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:368)
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:495)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
Kann mir da jemand weiter helfen??????????????????????????????????
****************************************************
Hier die faces-config.xml:
****************************************************
<?xml version="1.0" encoding="UTF-8" ?>
- <faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd">
- <managed-bean>
<managed-bean-name>wonderbean</managed-bean-name>
<managed-bean-class>sevenwonder.WonderBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
- <converter>
<converter-id>wonderconverter</converter-id>
<converter-class>sevenwonder.WonderConverter</converter-class>
</converter>
</faces-config>
****************************************************
Hier die index.jsp:
****************************************************
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<!-- RichFaces tag library declaration -->
<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
<html>
<head>
<title>PRF39</title>
</head>
<body>
<f:view>
<h:form>
<rich
anel>
<f:facet name="header">
<h
utputText value="Using rich
rderingList"/>
</f:facet>
<h
anelGrid columns="3">
<rich
rderingList id="myList" value="#{wonderbean.ancientWonders}" var="wonder" converter="wonderconverter" listWidth="350">
<a4j:support event="onorderchanged" reRender="wonderList"/>
<f:facet name="caption">
<h
utputText value="Wonders in the ancient world"/>
</f:facet>
<h:column>
<f:facet name="header">
<h
utputText value="Name:"/>
</f:facet>
<h
utputText value="#{wonder.name}"/>
</h:column>
<h:column>
<f:facet name="header">
<h
utputText value="Location:"/>
</f:facet>
<h
utputText value="#{wonder.location}"/>
</h:column>
</rich
rderingList>
<rich:dataOrderedList id="wonderList" value="#{wonderbean.ancientWonders}" var="wonder">
<h
utputText value="#{wonder.name}, #{wonder.location}"/>
</rich:dataOrderedList>
</h
anelGrid>
</rich
anel>
</h:form>
</f:view>
</body>
</html>
****************************************************
Hier die Wonder.java:
****************************************************
****************************************************
Hier die WonderBean.java:
****************************************************
****************************************************
Und last nit Least hier die WonderConverter.java:
****************************************************
Vielen Dank im Voraus!
Grüße, Werner
habe mit untigen Code versucht eine orderingList mit einem Converter zu versorgen.
Klappt ganz gut beim Event "onorderedchanged", aber leider nur einmal.
Beim 2.ten Mal krachts:
java.lang.IllegalStateException: sevenwonder.Wonder
javax.faces.component.StateHolderSaver.restore(StateHolderSaver.java:109)
javax.faces.component.UIComponentBase.restoreAttachedState(UIComponentBase.java:1441)
org.richfaces.component.UIOrderingList$ValueHolder.restoreState(UIOrderingList.java:196)
org.richfaces.component.UIOrderingList.restoreState(UIOrderingList.java:730)
org.richfaces.component.html.HtmlOrderingList.restoreState(HtmlOrderingList.java:1397)
javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:1166)
javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:1182)
javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:1182)
javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:1182)
javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:1182)
org.ajax4jsf.application.AjaxStateManager.restoreView(AjaxStateManager.java:439)
com.sun.faces.application.ViewHandlerImpl.restoreView(ViewHandlerImpl.java:316)
org.ajax4jsf.application.ViewHandlerWrapper.restoreView(ViewHandlerWrapper.java:107)
com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:176)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:104)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:368)
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:495)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
Kann mir da jemand weiter helfen??????????????????????????????????
****************************************************
Hier die faces-config.xml:
****************************************************
<?xml version="1.0" encoding="UTF-8" ?>
- <faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd">
- <managed-bean>
<managed-bean-name>wonderbean</managed-bean-name>
<managed-bean-class>sevenwonder.WonderBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
- <converter>
<converter-id>wonderconverter</converter-id>
<converter-class>sevenwonder.WonderConverter</converter-class>
</converter>
</faces-config>
****************************************************
Hier die index.jsp:
****************************************************
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<!-- RichFaces tag library declaration -->
<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
<html>
<head>
<title>PRF39</title>
</head>
<body>
<f:view>
<h:form>
<rich
<f:facet name="header">
<h
</f:facet>
<h
<rich
<a4j:support event="onorderchanged" reRender="wonderList"/>
<f:facet name="caption">
<h
</f:facet>
<h:column>
<f:facet name="header">
<h
</f:facet>
<h
</h:column>
<h:column>
<f:facet name="header">
<h
</f:facet>
<h
</h:column>
</rich
<rich:dataOrderedList id="wonderList" value="#{wonderbean.ancientWonders}" var="wonder">
<h
</rich:dataOrderedList>
</h
</rich
</h:form>
</f:view>
</body>
</html>
****************************************************
Hier die Wonder.java:
****************************************************
Java:
package sevenwonder;
import javax.annotation.*;
public class Wonder {
private String name; // setter and getter
private String location; // setter and getter
public Wonder(String name, String location)
{
super();
this.name = name;
this.location = location;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
public String toString() {
return name+":"+location;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((location == null) ? 0 : location.hashCode());
return result;
}
@Override
public boolean equals(Object obj)
{
if (this == obj) return true;
if (this == null) return false;
if (getClass() != obj.getClass()) return false;
final Wonder other = (Wonder) obj;
if (location == null)
{
if (other.location != null) return false;
}
else if (!location.equals(other.location)) return false;
if (name == null)
{
if (other.name != null) return false;
}
else if (!name.equals(other.name)) return false;
return true;
}
}
****************************************************
Hier die WonderBean.java:
****************************************************
Java:
package sevenwonder;
import java.util.*;
import javax.annotation.PostConstruct;
public class WonderBean {
private List <Wonder> ancientWonders=null;
private int wonderIndex;
public WonderBean() {
super();
}
@PostConstruct
public void init() {
ancientWonders = new ArrayList <Wonder>();
ancientWonders.add(new Wonder("Chichen Itza", "Mexico"));
ancientWonders.add(new Wonder("Christ the Redeemer", "Brazil"));
ancientWonders.add(new Wonder("Colosseum", "Italy"));
ancientWonders.add(new Wonder("Great Wall of China", "China"));
ancientWonders.add(new Wonder("Machu Picchu", "Peru"));
ancientWonders.add(new Wonder("Taj Mahal", "India"));
}
public String getInit() {
return "";
}
public int getWonderIndex() {
return wonderIndex;
}
public void setWonderIndex(int wonderIndex) {
this.wonderIndex = wonderIndex;
}
public List<Wonder> getAncientWonders() {
return ancientWonders;
}
public void setAncientWonders(List<Wonder> ancientWonders) {
this.ancientWonders = ancientWonders;
for(int i=0; i<ancientWonders.size(); i++) {
System.out.println("ancientWonders Name ("+i+")="+ancientWonders.get(i).getName());
}
}
}
****************************************************
Und last nit Least hier die WonderConverter.java:
****************************************************
Java:
package sevenwonder;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
public class WonderConverter implements Converter
{
public Object getAsObject(FacesContext context, UIComponent component, String value)
{
String[] words = value.split(":");
String name = words[0];
String location = words[1];
Wonder wonder = new Wonder(name, location);
return (Object)wonder;
}
public String getAsString(FacesContext context, UIComponent component, Object value)
{
return value.toString();
}
}
Vielen Dank im Voraus!
Grüße, Werner