Error when reRender listShuttle
azur666 May 13, 2011 4:06 AMHi!!
I have a problem with the component listShuttle I hope someone can solve.
I turn to for help with my problem.
My source code is:
ExportarAzu.java
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
import static org.jboss.seam.ScopeType.CONVERSATION;
import java.util.List;
import java.util.ArrayList;
import javax.ejb.Remove;
import javax.ejb.Stateful;
@Stateful
@Scope(CONVERSATION)
@Name("exportarAzu")
public class ExportarAzu implements ExportarAzuInterface {
private String mnemonic = "Name";
private String deviceAddress = "InternalIpAddress";
private String deviceType = "Model";
private String accessAddress = "AccessIpAddress";
private String SNMPCommunity = "SnmpCommunity";
private String userFTPName = "FtpUser";
private String userFTPPassword = "FtpKey";
private String category1 = "Category1";
private String category2 = "Cat 2"; //Cat+space+space+2
private String user1 = "User1";
private String user2 = "User2";
private List<String>availableProperties;
private List<String>selectedProperties;
public void setAvailableProperties(List<String> l)
{
availableProperties = l;
}
public List<String> getAvailableProperties()
{
if (availableProperties == null)
{
availableProperties = new ArrayList<String>();
availableProperties.add(accessAddress);
availableProperties.add(SNMPCommunity);
availableProperties.add(userFTPName);
availableProperties.add(userFTPPassword);
availableProperties.add(category1);
availableProperties.add(category2);
availableProperties.add(user1);
availableProperties.add(user2);
}
return availableProperties;
}
public void setSelectedProperties(List<String>l)
{
selectedProperties = l;
}
public List<String> getSelectedProperties()
{
if (selectedProperties == null)
{
selectedProperties = new ArrayList<String>();
selectedProperties.add(mnemonic);
selectedProperties.add(deviceAddress);
selectedProperties.add(deviceType);
}
if(availableProperties != null)
{
if (availableProperties.contains(mnemonic))
{
int index = availableProperties.indexOf(mnemonic);
selectedProperties.add(0, availableProperties.get(index));
availableProperties.remove(index);
}
if (availableProperties.contains(deviceAddress))
{
int index = availableProperties.indexOf(deviceAddress);
selectedProperties.add(1, availableProperties.get(index));
availableProperties.remove(index);
}
if (availableProperties.contains(deviceType))
{
int index = availableProperties.indexOf(deviceType);
selectedProperties.add(2, availableProperties.get(index));
availableProperties.remove(index);
}
}
return selectedProperties;
}
@Remove
public void destroy(){}
}
ExportarAzuInterface.java
import java.util.List;
import javax.ejb.Remove;
public interface ExportarAzuInterface {
public void setAvailableProperties(List<String> l);
public List<String> getAvailableProperties();
public void setSelectedProperties(List<String>l);
public List<String> getSelectedProperties();
public void destroy();
}
ExportarAzu.xhtml
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:s="http://jboss.com/products/seam/taglib"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich"
template="layout/template.xhtml"
xmlns:c="http://java.sun.com/jstl/core">
<ui:define name="body">
<h:form styleClass="main">
<a4j:region>
<rich:messages>
<f:facet name="errorMarker">
<h:graphicImage value="/img/error.gif" />
</f:facet>
</rich:messages>
<rich:toolBar id="toolBar" itemSeparator="line" height="28px">
<c:forEach items="#{exportarAzu.selectedProperties}" var="item">
<h:panelGroup>
<h:outputLink value="#" style="color:#{a4jSkin.generalTextColor}; text-decoration:none;" >
<h:outputText value="#{item}" />
</h:outputLink>
</h:panelGroup>
</c:forEach>
</rich:toolBar>
<rich:spacer height="20" />
<rich:listShuttle sourceValue="#{exportarAzu.availableProperties}"
targetValue="#{exportarAzu.selectedProperties}"
var="items" listsHeight="150"
id ="listas"
sourceListWidth="130" targetListWidth="130" sourceCaptionLabel="Available Items"
targetCaptionLabel="Currently Active Items">
<rich:column>
<h:outputText value="#{items}"></h:outputText>
</rich:column>
<a4j:support event="onlistchanged"
reRender="toolBar, listas"
status="status"
queue="exportCardsQueue"
ignoreDupResponses="true"/>
</rich:listShuttle>
</a4j:region>
</h:form>
<h:form styleClass="innerForm">
<h:panelGrid columns="2" styleClass="panelModalPanel" columnClasses="columnLeftModalPanel, columnRightModalPanel">
<s:button id="cancel"
value="${messages.actionDone}"
styleClass="boton"
view="/FichasList.xhtml"
onmouseover="this.style.backgroundColor='green';this.style.color='white';this.style.cursor='pointer'"
onmouseout="this.style.backgroundColor='';this.style.color='';this.style.cursor=''"/>
</h:panelGrid>
</h:form>
</ui:define>
</ui:composition>
ExportarAzu.page.xml
<?xml version="1.0" encoding="UTF-8"?> <page xmlns="http://jboss.com/products/seam/pages" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jboss.com/products/seam/pages http://jboss.com/products/seam/pages-2.0.xsd" login-required="true"> <begin-conversation join="true"/> </page>
The problem occurs when setting, for example, Category2=”Cat 2 “(Cat+ two spaces+ 2). When there are two spaces or more in any field I have the following error when I select any data from the list for a second time.
j_id288:listas: Validation Error: Value Cat 2 is not valid
The problem is when reRender="toolbar,listas", in particular when reRender==>"listas"
If reRender="toolbar", nothing happens, only happens when reRender="listas" (the listShuttle), and I need to repaint listShuttle
After this, the listShutlle is not working well.
Please, help me.
Thank you very much.
Nobody can help me??????
I don't find the error.
El mensaje fue editado por: Azur g.