For example a action class
public class TestListNullEntry implements Action{
private List testList = new ArrayList();
public String execute() throws Exception
{ testList.add("entry1"); testList.add(null); testList.add("entry3"); return this.SUCCESS; }public List getTestList()
{ return testList; }}
This action is unable to render a xslt result because of the null entry.
Code changes to fix this problem.
Index: C:/apache/struts/core/src/main/java/org/apache/struts2/views/xslt/AdapterFactory.java
===================================================================
— AdapterFactory.java (revision 651946)
+++ AdapterFactory.java (working copy)
- public Node adaptNullValue(BeanAdapter parent, String propertyName) {
+ public Node adaptNullValue(AdapterNode parent, String propertyName) { return new StringAdapter(this, parent, propertyName, "null"); }
Also changes needed in
Index: C:/apache/struts/core/src/main/java/org/apache/struts2/views/xslt/CollectionAdapter.java
===================================================================
— CollectionAdapter.java (revision 651946)
+++ CollectionAdapter.java (working copy)
for (Object value : values) {
- Node childAdapter = getAdapterFactory().adaptNode(this, "item", value);
+ Node childAdapter;
+ if (value == null) { + childAdapter = getAdapterFactory().adaptNullValue(this, "item"); + }else
{ + childAdapter = getAdapterFactory().adaptNode(this, "item", value); + }
if (childAdapter != null)
children.add(childAdapter);