ecco un frammento di una jsp:
codice:
<display-el:table name="${requestScope.results}" id="parametroRibaltamento" class="browse"
export="${userCtx.exportableTables}"
decorator="it.html.tables.decorator.ParametroRibaltamentoBrowseTableDecorator"
pagesize="999">
<display-el:column titleKey="xxxx.title.column.commessa" sortable="true">
<display-el:column media="html" property="addActionsLinks" titleKey="aragorn.collabel.actions"/>
</display-el:table>
ed ecco un esempio abbastanza "brutale" di un decorator: questo ritorna la stringa html corrispondente ad un'icona di edit che, premuta, manda alla form di modifica...
codice:
public class ParametroRibaltamentoBrowseTableDecorator extends TableDecorator {
private static final String IMG_PATH_REF = AppCtxKeys.BASE_IMAGES_PATH;
private static final String IMG_UPDATE_REF = "/edit.gif";
private static final String UPDATE_PAGE = "/protected/parametroRibaltamentoBrowse.jsp";
private static final String FORM_NAME = "ParametroRibaltamentoChangeForm";
public String getAddActionsLinks() {
String id = null;
String pianoContiId = null;
HttpServletRequest request = (HttpServletRequest) getPageContext().getRequest();
String annoEsercizio = request.getParameter("annoEsercizio");
try {
id = (String) PropertyUtils.getProperty(this.getCurrentRowObject(), "id");
pianoContiId = (String) PropertyUtils.getProperty(this.getCurrentRowObject(), "pianoContiId");
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
}
return "<a href=\"" + UPDATE_PAGE + "?id=" + id + "&pianoContiId=" + pianoContiId + "&op=update" +
"&opspec=tblinl&form=" + FORM_NAME + "&annoEsercizio=" + annoEsercizio + "\">" +
"<img id=\"actionimg\" src=\"" + IMG_PATH_REF + IMG_UPDATE_REF + "\" title=\"" + UtilityKeys.TITLE_UPDATE + "\"></a>";
}
}