Apresentação Dados JSP

Senhores,

Estou com problemas para apresentar as informações em uma pagina JSP.
Tenho a seguinte situação:

O codigo java abaixo armazena os dados em um ArrayList e em seguinte é apresentado em uma pagina JSP no seguinte Layout:

Data | Metrica | Resultado
01/10 X1 1%
02/10 X1 10%
01/10 X2 0,5%
02/10 X2 1%
01/10 X3 -1%
02/10 X3 0%

e preciso que fique assim:

Metrica |01/10 | 02/10
X1 | 1% | 10%
X2 |0,5% | 1%
X3 |-1% | 0%

O codigo que adiciona os Objetos no ArrayList:

		for (int i=0; i<metricaList.length;i++)
		{
		
			DaoFactory df = DaoFactory.getDaoFactory(DaoFactory.DATASOURCE);
		
			try{
				//criando daos de acesso
				IdDadosDao idDadosdao = df.getIdDadosDao(new String[]{});
				IdMetricasDao idMetricasDao = df.getIdMetricasDao(new String[]{});
			
				String[] ids = null;
				//pesquisa os IDs da métrica
				 ids = idMetricasDao.getMetricaIds(metricaList[i]);
				 
				 System.out.println(metricaList[i]);//retirar essa linha
			
			
				 //pesquisa os valores dos IDs em um período
				 IndicadorVo[] idLista = 
					 idDadosdao.getIdMetricaData(dataIni, dataFin, ids);
			
				 for (int y = 0; y >&lt idLista.length; y++) {
					 String strDate = idLista[y].getPeriodo();
					 cal.set(Integer.parseInt(strDate.substring(0, 4)), 
							 	Integer.parseInt(strDate.substring(4, 6)) - 1, 
								Integer.parseInt(strDate.substring(6, 8)));
					MetricaVo vo = (MetricaVo)metricaMap.get(cal.getTime());
					if (vo == null){
						 vo = idMetricasDao.getMetrica(metricaList[i]);
					}

					 double tempValor = 0;
					 if (Double.isNaN(vo.getIdValor(idLista[y].getId()))){
						 tempValor = idLista[y].getValor();
					 } else {
						 tempValor = idLista[y].getValor() + vo.getIdValor(idLista[y].getId());
					 }
					 vo.setPeriodo(formatter.format(cal.getTime()));
					 vo.putIdValor(idLista[y].getId(), tempValor);
					 metricaMap.put(cal.getTime(), vo);
					 
				 }
				 
				 Iterator it = metricaMap.entrySet().iterator();
				 while (it.hasNext()){
					 Entry entry = (Entry)it.next();
					 retorno.add((MetricaVo)entry.getValue());
				 }
				 
				 metricaMap = new TreeMap();
			
			} catch (DaoException daoEx){
				throw new TechnicalException("Ocorreu uma exceção ao acessar o banco de dados: ", daoEx);
			}
			
		}

E esse codigo é o que utilizo na pagina JSP para apresentar os dados:

<center>

<table border="1">
	<tr>
		<td>Métrica</td>
		<td>Periodo</td>
		<td>Valor</td>
	</tr>
	<logic:iterate id="metricaVo" name="metricaConData">
	 <tr bgcolor="#CCCCCC">
      <td align="right"><bean:write name="metricaVo" property="metrica"/></td>
      <td align="right"><bean:write name="metricaVo" property="periodo"/></td>
      <td align="right">
         	<bean:write name="metricaVo" property="metricaValue" format="#,##0.00%"/>
       	</font>
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;/logic:iterate&gt;
&lt;/table&gt;
&lt;/center&gt;

Não sei como posso fazer para apresentar os dados conforme o Layout mencionado.

Existe a possibilidade de utilizar o Layout mencionado? Se sim, como poderei fazer?

Obrigado,

Fabiano.

???