好。好问题。
这是一个解决方案:编写自定义jstl标记以评估bean的属性表达式:
<mytag:eval bean="${requestScope['formKey']}" propertyexpression = "${path}" var="items" />和ForEach:
<c:forEach var="toc" items="${items}"></c:forEach>mytag:eval JSTL标签的示例代码(经典模型)
public class evalTag extends TagSupport{ private Object bean; private String propertyexpression; //Ex: 'model.sharingTocs' private String var; //............ @Override public int doEndTag() throws JspException { try { // Use reflection to eval propertyexpression ('model.sharingTocs') on the given bean Object propObject = SomeLibs.eval ( this.bean, this.propertyexpression); this.pageContext.getRequest().setAttribute(this.var, propObject); // You can add propObject into Other scopes too. } catch (Exception ex) { throw new JspTagException(ex.getMessage(), ex); } return eval_PAGE; } //............ // SETTERS here }可以用来评估property的lib是Apache bean utils。
http://commons.apache.org/proper/commons-
beanutils/apidocs/org/apache/commons/beanutils/package-
summary.html#standard.nested



