1

我想在我的 JSP 页面上列出各种 webflow 上下文范围(viewScope、flowScope 等)中的所有内容以进行调试(第一个 webflow 应用程序,试图让它工作。)但我似乎无法得到语法正确。谁能告诉我该怎么做?我的 flow.xml 中有这个:

<view-state id="createAccount" model="account">
    <on-render>
        <evaluate expression="flowService.createAccount()" result="flowScope.account" />
    </on-render>
    <transition on="next" to="applicationInfo" />
</view-state>

我在我的 JSP 页面中有这个:

<c:forEach items="${flowScope}" var="thisFlowScope" varStatus="thisFlowScopeStatus">
    <label>${thisFlowScope.key}</label>
    <span>${thisFlowScope.value}</span>
</c:forEach>

我希望看到的是“帐户”属性/变量与 flowScope 中的所有其他内容一起打印出来。相反,我什么也得不到。我尝试了各种排列,例如“flowRequestContext”而不是“flowScope”。使用“flowRequestContext”我得到:

javax.servlet.jsp.JspTagException: Don't know how to iterate over supplied "items" in &lt;forEach&gt;
    org.apache.taglibs.standard.tag.common.core.ForEachSupport.toForEachIterator(ForEachSupport.java:255)
    org.apache.taglibs.standard.tag.common.core.ForEachSupport.supportedTypeForEachIterator(ForEachSupport.java:219)
    org.apache.taglibs.standard.tag.common.core.ForEachSupport.prepare(ForEachSupport.java:137)
    javax.servlet.jsp.jstl.core.LoopTagSupport.doStartTag(LoopTagSupport.java:227)

谁能告诉我该怎么做?

4

2 回答 2

3

flowScope 是一个MutableAttributeMap

你不能对此感到厌烦。这就是为什么使用不起作用的原因c:forEach

但是:您可以打印整个地图,${flowRequestContext.flowScope}但这看起来并不漂亮。

有一个名为asMapinherited from的函数org.springframework.binding.collection.MapAdaptable将其转换为java.util.Map(当然是可迭代的)

于 2013-08-20T16:13:38.597 回答
1

我根据回答 Philipp Sander 和“user1071914”添加了我的示例:

流.xml:

<view-state id="display" view="/WEB-INF/jsp/infoUser.jsp" model="dtoUser">
   <on-entry>
      <evaluate expression="flowRequestContext.flowScope.asMap()" result="requestScope.flowAsMap" />
   <on-entry>
   <transition on="next" to="checkUserAction" />
</view-state>

<action-state id="checkUserAction">
  ...
</action-state>

查看 JSP:

<c:out value="${requestScope.flowAsMap['myvarflowScope']}" />
于 2018-02-07T07:22:34.233 回答