[Opensource] Problem with expresso iteration tags
Raul DAVIDOVICH
R.DAVIDOVICH at caconcology.com
Wed Aug 14 03:05:21 PDT 2002
Hello,
I'm trying to output something on the screen, but I'm having some
problems with the iterate tags. when I try the following JSP, for just one
record, it works fine (the controller's code is right after it):
listDAPar.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" %>
<%@ taglib uri="/expresso" prefix="expresso" %>
<table class="jc-default" border="3" align="center">
<tr>
<th><b>Test5</b></th>
<th><b>Test2</b></th>
<th><b>Test3</b></th>
</tr>
<expresso:OutputTag name="SelectedDA">
<tr>
<td><expresso:AttributeTag name="Abreviature"/> </td>
<td><expresso:AttributeTag name="Label"/> </td>
<td><expresso:AttributeTag name="Commens"/> </td>
</tr>
</expresso:OutputTag>
</table>
DAParController.java
...
protected ControllerResponse runListDAParState(ControllerRequest params,
ControllerResponse response) throws ControllerException{
try{
String daCodeStr = "2";
DAPar da = new DAPar();
da.setDBName(params.getDBName());
da.setField("RefDAPar", daCodeStr);
da.retrieve();
Output out1 = new Output();
out1.setName("SelectedDA");
out1.setAttribute("Abreviature", da.getField("DAParAbrev"));
out1.setAttribute("Label", da.getField("DAParLabel"));
out1.setAttribute("Use Medical Writing", da.getField
("DAParUseMW"));
out1.setAttribute("Use CRO", da.getField("DAParUseCRO"));
out1.setAttribute("Use Biometrics", da.getField("DAParUseBM"));
out1.setAttribute("Type of Income", da.getField("DAParTypeDep"));
out1.setAttribute("Commens", da.getField("DAParComment"));
response.add(out1);
}
catch (DBException dbe) {
throw new ControllerException("Database exception: " +
dbe.getMessage());
}
response.setStyle("listDAPar");
return response;
}/*runListDAParState*/
...
Now, when I try to retrieve several records and make an iteration over the
blocks and outputs, nothing happens. Here is the JSP followed by the
controller's state:
listDAPar.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" %>
<%@ taglib uri="/expresso" prefix="expresso" %>
<table class="jc-default" border="3" align="center">
<tr>
<th><b>Test5</b></th>
<th><b>Test2</b></th>
<th><b>Test7</b></th>
</tr>
<expresso:ElementCollection type="block">
<expresso:ElementIterator>
<expresso:ElementCollection type="output">
<expresso:ElementIterator>
<expresso:OutputTag name="Detail">
<tr>
<td><expresso:AttributeTag name="Abreviature"/> </td>
<td><expresso:AttributeTag name="Label"/> </td>
<td><expresso:AttributeTag name="Commens"/> </td>
</tr>
</expresso:OutputTag>
</expresso:ElementIterator>
</expresso:ElementCollection>
</expresso:ElementIterator>
</expresso:ElementCollection>
</table>
DAParController.java
...
/**
* List Parameter Activity Domains State
*/
protected ControllerResponse runListDAParState(ControllerRequest
params, ControllerResponse response) throws ControllerException{
try{
//System.out.println("coucou");
Block blockList = new Block("DAParList");
DAPar DAParInit = new DAPar();
DAParInit.setDBName(params.getDBName());
ArrayList list = DAParInit.searchAndRetrieveList
("DAParAbrev");
for(int k=0; k<list.size(); ++k) {
DAPar da = (DAPar)list.get(k);
//create a Block for each row tuple
Block blockRow = new Block("Comp"+k);
blockList.add(blockRow);
//create an output for the DBObject row tuple
Output out1 = new Output();
out1.setName("Detail");
out1.setAttribute("Abreviature", da.getField
("DAParAbrev"));
out1.setAttribute("Label", da.getField("DAParLabel"));
out1.setAttribute("Use Medical Writing", da.getField
("DAParUseMW"));
out1.setAttribute("Use CRO", da.getField("DAParUseCRO"));
out1.setAttribute("Use Biometrics", da.getField
("DAParUseBM"));
out1.setAttribute("Type of Income", da.getField
("DAParTypeDep"));
out1.setAttribute("Commens", da.getField("DAParComment"));
blockRow.add(out1);
Transition editDAParTrx = new Transition("Edit", getClass
().getName());
editDAParTrx.setName("EditDAPar");
editDAParTrx.addParam("state", "promptEditDAPar");
editDAParTrx.addParam("da", da.getField("RefDAPar"));
blockRow.add(editDAParTrx);
Transition deleteDAParTrx = new Transition("Delete",
getClass().getName());
deleteDAParTrx.setName("DeleteDAPar");
deleteDAParTrx.addParam("state", "promptDeleteDAPar");
deleteDAParTrx.addParam("da", da.getField("RefDAPar"));
blockRow.add(deleteDAParTrx);
}
response.addBlock(blockList);
}
catch (DBException dbe) {
throw new ControllerException("Database exception: " +
dbe.getMessage());
}
response.setStyle("listDAPar");
return response;
}/*runListDAParState*/
...
Finnally, when I try to use certain tags, like expresso:TableHead, or
expresso:TransitionTag, I get the following error message:
org.apache.jasper.compiler.ParseException:
/cacis/administration/listDAPar.jsp(4,0) Body is supposed to be empty for
expresso:TableHead
If I take out the <%@ %> tags, the page compiles, but I see nothing
any help will be very appreciated
Best regards
---------------------------------------------------
Raul Davidovich
Responsable Informatique
Cvitkovic & Associés Consultants
(33) 1 45 15 40 68
(33) 1 45 15 40 41 Fax
-------------------------------------------------------
http://www.caconcology.com
More information about the Opensource
mailing list