tag.setLabel(entry.label.toString()); tag.setValue(entry.value); tag.doStartTag(); tag.doInitBody(); tag.doAfterBody(); tag.doEndTag();
tag.setLabel(entry.label.toString()); tag.setValue(entry.value); try { tag.doStartTag(); tag.doInitBody(); tag.doAfterBody(); tag.doEndTag(); } catch (Throwable t) {  try { tag.doCatch(t); } catch (Throwable t2) { if (t2 instanceof JspException) throw (JspException) t2; if (t2 instanceof RuntimeException) throw (RuntimeException) t2; else throw new StripesJspException(t2); } } finally { tag.doFinally(); }
    public int doEndTag() throws JspException {        // Determine if we're going to be sorting the collection        List<Entry> sortedEntries = new LinkedList<Entry>(this.entries);        if (this.sort != null) {            String[] props = this.sort.split(" *, *");            for (int i=0;i<props.length;++i) {                if (!props[i].equals("label") && !props[i].equals("value")) {                    props[i] = "bean." + props[i];                }            }            Collections.sort(sortedEntries,                             new BeanComparator(getPageContext().getRequest().getLocale(), props));        }        InputOptionTag tag = new InputOptionTag();        tag.setParent(this);        tag.setPageContext(getPageContext());        tag.getAttributes().putAll(getAttributes());        for (Entry entry : sortedEntries) {            tag.setLabel(entry.label.toString());            tag.setValue(entry.value);            tag.doStartTag();            tag.doInitBody();            tag.doAfterBody();            tag.doEndTag();        }        // Clean up any temporary state        this.entries.clear();        return EVAL_PAGE;    }