Java 子流调用在SpringWebFlow中不起作用

Java 子流调用在SpringWebFlow中不起作用,java,spring,spring-mvc,spring-webflow-2,Java,Spring,Spring Mvc,Spring Webflow 2,我正在SpringMVC中创建一个ShoppingCart应用程序 注册流(流id=注册流) MailSender流(流id=mailFlow) 当用户注册数据成功输入数据库时,将触发邮件发送者流(子流) 我的父流是RegistrationFlow 请查找以下子流调用代码: <!-- other navigation rules of parent flow --> <subflow-state id="mailSenderFlow" subflow="mailFlow"&g

我正在SpringMVC中创建一个ShoppingCart应用程序

  • 注册流(流id=注册流)
  • MailSender流(流id=mailFlow)
  • 当用户注册数据成功输入数据库时,将触发邮件发送者流(子流)

    我的父流是RegistrationFlow

    请查找以下子流调用代码:

    <!-- other navigation rules of parent flow -->
    
    <subflow-state id="mailSenderFlow" subflow="mailFlow">
        <input name="userEmail" value="flowScope.regBean.userDTO.userMail"/>
        <transition on="finishMailFlow" to="checkMailFlowResult" />
    </subflow-state>
    
    <decision-state id="checkMailFlowResult">
        <if test="mailSender.mailConfirmation(currentEvent.attributes.mailFlowOutcome)"
            then="regSuccess" else="regConfirm" />
    </decision-state>
    
    <end-state id="regSuccess" view="/WEB-INF/view/regSuccess.jsp" />
    

    有人能解决这个问题吗?

    请尝试在您的价值内使用单引号:

    <output name="mailFlowOutcome" value="'mail sending done'"/>
    
    
    
    谢谢rptmat57。它起作用了。你能解释一下原因吗?是不是输出值没有被视为字符串数据类型?准确地说。如果您只有一个单词(只要它不是保留单词),EL将解析并计算它是字符串。否则,它将尝试解析表达式(不确定具体如何解析),并引发错误
      org.springframework.webflow.execution.FlowExecutionException: Exception  thrown in state 'mailSenderFlow' of flow 'registrationFlow'
      at  org.springframework.webflow.engine.impl.FlowExecutionImpl.wrap(FlowExecutionImpl.java:573)
      at org.springframework.webflow.engine.impl.FlowExecutionImpl.resume(FlowExecutionImpl.java:263)
    at org.springframework.webflow.executor.FlowExecutorImpl.resumeExecution(FlowExecutorImpl.java:169)
    at org.springframework.webflow.mvc.servlet.FlowHandlerAdapter.handle(FlowHandlerAdapter.java:253)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
    Truncated. see log file for complete stacktrace
    
    Caused By: org.springframework.expression.spel.SpelParseException: EL1041E:  After parsing a valid expression, there is still more data in the expression: 'sending'
    at org.springframework.expression.spel.standard.InternalSpelExpressionParser.doParseExpression(InternalSpelExpressionParser.java:130)
    at org.springframework.expression.spel.standard.SpelExpressionParser.doParseExpression(SpelExpressionParser.java:60)
    at org.springframework.expression.spel.standard.SpelExpressionParser.doParseExpression(SpelExpressionParser.java:32)
    at org.springframework.expression.common.TemplateAwareExpressionParser.parseExpression(TemplateAwareExpressionParser.java:73)
    at org.springframework.binding.expression.spel.SpringELExpressionParser.parseSpelExpression(SpringELExpressionParser.java:96)
    Truncated. see log file for complete stacktrace>
    
    <output name="mailFlowOutcome" value="'mail sending done'"/>