[JBoss JIRA] Created: (RF-3702) rich:orderingList doesn't update the correct instance when
by Zied Hamdi (JIRA)
rich:orderingList doesn't update the correct instance when
-----------------------------------------------------------
Key: RF-3702
URL: http://jira.jboss.com/jira/browse/RF-3702
Project: RichFaces
Issue Type: Bug
Affects Versions: 3.2.0
Environment: facelets 1.1.14
Reporter: Zied Hamdi
The 'selection' attribute of 'rich:orederingList' doesn't update the binded object when in a loop (ui:repeat, a4j:repeat, h:dataTable), but the first element instead.
See the log output that demonstrates the problem:
Initialized ListHolder with : [my, first]
Initialized ListHolder with : [my, last]
Initialized ListHolder with : [my, everything]
selected set on '[my, first]'
Button clicked on '[my, last]'
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:rich="http://richfaces.org/rich"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns:c="http://java.sun.com/jstl/core">
<f:view>
<body style="margin: 0; padding: 0;">
<h:form id="mainForm">
<h:messages title="errors"/>
<ui:repeat value="#{testController.listHolders}" var="listHolder">
<rich:panel id="panel" header="#{listHolder.entries}">
<rich:orderingList id="orderingList" value="#{listHolder.entries}" var="entry"
selection="#{listHolder.selected}">
<rich:column>
<h:outputText id="outputText" value="#{entry}" />
</rich:column>
</rich:orderingList>
<h:commandButton id="button" actionListener="#{listHolder.doItLstr}"
value="do it" />
</rich:panel>
</ui:repeat>
</h:form>
</body>
</f:view>
</html>
public class TestController {
protected List<ListHolder> listHolders = new ArrayList<ListHolder>();
{
listHolders.add(new ListHolder("my first"));
listHolders.add(new ListHolder("my last"));
listHolders.add(new ListHolder("my everything"));
}
public class ListHolder {
List<String> entries = new ArrayList<String>();
Set<String> selected;
public ListHolder(String value) {
entries = Arrays.asList(value.split(" "));
System.out.println("Initialized ListHolder with : " + entries);
}
public void doItLstr(ActionEvent actionEvent) {
System.out.println("Button clicked on '" + entries + "'");
}
public List<String> getEntries() {
return entries;
}
public void setEntries(List<String> entries) {
this.entries = entries;
}
public Set<String> getSelected() {
return selected;
}
public void setSelected(Set<String> selected) {
System.out.println("selected set on '" + entries + "'");
this.selected = selected;
}
}
public List<ListHolder> getListHolders() {
return listHolders;
}
public void setListHolders(List<ListHolder> listHolders) {
this.listHolders = listHolders;
}
}
----------------------------------------- workaround attempt -----------------------------
I've tried to do a binding on each row but it doesn't work too: I have an error as if ui:repeat was performed at compile time, but I'm almost sure it is a render-time tag (it doesn't work with a h:dataTable too)
Caused by: javax.el.PropertyNotFoundException: /test/orderingList.xhtml @21,78 binding="#{listHolder.orderingList}": Target Unreachable, identifier 'listHolder' resolved to null
at com.sun.facelets.el.TagValueExpression.setValue(TagValueExpression.java:95)
at com.sun.faces.application.ApplicationImpl.createComponent(ApplicationImpl.java:248)
at com.sun.facelets.tag.jsf.ComponentHandler.createComponent(ComponentHandler.java:224)
at com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:139)
at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47)
at com.sun.facelets.tag.jsf.ComponentHandler.applyNextHandler(ComponentHandler.java:314)
at com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:169)
at com.sun.facelets.tag.jsf.ComponentHandler.applyNextHandler(ComponentHandler.java:314)
at com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:169)
at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47)
at com.sun.facelets.tag.jsf.ComponentHandler.applyNextHandler(ComponentHandler.java:314)
at com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:169)
at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47)
at com.sun.facelets.tag.jsf.core.ViewHandler.apply(ViewHandler.java:109)
at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47)
at com.sun.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:49)
at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47)
at com.sun.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:25)
at com.sun.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:95)
at com.sun.facelets.FaceletViewHandler.buildView(FaceletViewHandler.java:524)
at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:567)
at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:189)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:109)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
16 years, 10 months
[JBoss JIRA] Created: (RF-5605) Tree: reRender does not work after drag/Drop operation.
by Alexander Dubovsky (JIRA)
Tree: reRender does not work after drag/Drop operation.
-------------------------------------------------------
Key: RF-5605
URL: https://jira.jboss.org/jira/browse/RF-5605
Project: RichFaces
Issue Type: Bug
Affects Versions: 3.2.2, 3.3.0
Environment: 3.2.2.GA, 3.3.0.CR2
Reporter: Alexander Dubovsky
Assignee: Nick Belaevski
Fix For: Future
<rich:tree value="#{custom.data}" var="item">
<rich:treeNode reRender="label"
dropListener="#{item.processDrop}"
dragType="all" acceptedTypes="all">
<h:outputText value="#{item}" />
</rich:treeNode>
</rich:tree>
<h:outputText id="label" value="#{custom.text}" />
public void processDrop(DropEvent e) {
text = "!!! item was dropped !!!";
System.out.println("!!! item was dropped !!!");
}
# Open page
# Drag some node and drop it to another node
Result: dropListener was called, but text was not rerendered.
--
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
16 years, 10 months
[JBoss JIRA] Created: (RF-7239) ajax response XML parse error with script code
by Dave Chen (JIRA)
ajax response XML parse error with script code
----------------------------------------------
Key: RF-7239
URL: https://jira.jboss.org/jira/browse/RF-7239
Project: RichFaces
Issue Type: Bug
Components: core
Affects Versions: 3.3.0
Environment: Richfaces 3.3.0. Tomahawk1.1.8, sun JSF ri: 1.2.12. JBoss 5.0.1.GA, IE7
Reporter: Dave Chen
Header Ajax-Response not found, search in <meta>
debug[20:32:50,430]: Header Ajax-Expired not found, search in <meta>
warn[20:32:50,430]: No ajax response header
debug[20:32:50,440]: Header Location not found, search in <meta>
debug[20:32:50,440]: replace all page content with response
debug[20:32:50,440]: setup custom document.open method
debug[20:32:50,471]: exception during write page content undefined
error[20:32:50,481]: Error parsing responseXML Parsing Error: can not be empty.
Location: Line Number 27, Column 123:
<script type="text/javascript" language="Javascript">function dpf(f) {var adp = f.adp;if (adp != null) {for (var i = 0;i < adp.length;i++) {f.removeChild(adp[i]);}}};function apf(f, pvp) {var adp = new Array();f.adp = adp;var i = 0;for (k in pvp) {var p = document.createElement("input");p.type = "hidden";p.name = k;p.value = pvp[k];f.appendChild(p);adp[i++] = p;}};function jsfcljs(f, pvp, t) ..... </script>
Script code is XML CDATA, and must be enclosed in <![CDATA] ..... ]]> to prevent being parsed.
I do not know which component generates the javascript code.
--
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
16 years, 10 months
[JBoss JIRA] Created: (RF-7238) reRender should support partial id(postfix)
by Dave Chen (JIRA)
reRender should support partial id(postfix)
-------------------------------------------
Key: RF-7238
URL: https://jira.jboss.org/jira/browse/RF-7238
Project: RichFaces
Issue Type: Bug
Affects Versions: 3.3.0
Environment: Richfaces 3.3.0, Sun ri 1.2.12, Tomahawk 1.1.8, Jboss 5.0.1GA, IE 7
Reporter: Dave Chen
For example
File example1.jsp
<t:dataList>
<t:div id="region">
....
</t:div>
</t:dataList>
<a4j:commandLink reRender="2:region" ...>, it shoud re-render the 3rd row.
example1.jsp can be included under different naming container, so it is possible to know its absolute path.
Currently richfaces support either absolute path or one-level id.
The following would be more flexible:
if current component's absolute id ends with reRender id, it is found.
--
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
16 years, 10 months