首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在JSP中显示Spring的"flowScope“内容?

问如何在JSP中显示Spring的"flowScope“内容?
EN

Stack Overflow用户
提问于 2013-08-20 15:29:03
回答 2查看 6.7K关注 0票数 1

为了调试目的,我想列出各种webflow上下文作用域(viewScope、flowScope等)中的所有内容(第一个webflow应用程序,试图让它正常工作)。但我似乎不能正确地理解语法。有人能告诉我怎么做吗?我在我的flow.xml里有这个:

代码语言:javascript
复制
<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页面中有这样的内容:

代码语言:javascript
复制
<c:forEach items="${flowScope}" var="thisFlowScope" varStatus="thisFlowScopeStatus">
    <label>${thisFlowScope.key}</label>
    <span>${thisFlowScope.value}</span>
</c:forEach>

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

代码语言:javascript
复制
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)

有人能告诉我怎么做吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-20 16:13:38

flowScope是MutableAttributeMap。

你不能对这件事发牢骚。这就是为什么使用c:forEach不起作用的原因。

但是:您可以使用${flowRequestContext.flowScope}打印整个地图,但这看起来不太好看。

有一个名为asMap的函数从org.springframework.binding.collection.MapAdaptable继承下来,它将其转换为java.util.Map (当然,这是可迭代的)

票数 3
EN

Stack Overflow用户

发布于 2018-02-07 07:22:34

我在回答Philipp和“user1071914”的基础上增加了我的例子:

flow.xml:

代码语言:javascript
复制
<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:

代码语言:javascript
复制
<c:out value="${requestScope.flowAsMap['myvarflowScope']}" />
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18339093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档