如何从spring web flow xml获取会话?

时间:2016-09-19 08:03:01

标签: java spring spring-webflow

我在行动4中读到了春天,但我感到困惑的是,这个例子没有显示如何从请求中获取会话。
我希望实现完整的登录流程,我想得到来自jsp的会话来检查用户是否存在。
这个例子只显示了requestParameters这个类?(我甚至不知道它是什么)
并使用点'。'从Get方法获取参数。但是如何获得会话?
如果方法是Post?

<action-state id="lookupCustomer">
    <evaluate result="order.customer"
        result-type="com.springinaction.pizza.domain.Customer"
        expression="pizzaFlowActions.lookupCustomer(requestParameters.phoneNumber)" />
    <transition to="registrationForm" 
        on-exception="com.springinaction.pizza.service.CustomerNotFoundException" />
    <transition to="showOrder" />
</action-state>

1 个答案:

答案 0 :(得分:1)

我认为你在谈论spring MVC和Spring用于在你的应用程序中需要的类的依赖注入。

i)要将用户对象保留在会话中,请在控制器类的参数中使用HttpSession对象,该对象应该是会话范围的,并将会话值存储在用户对象中。

例如:

     @Scope("session")
     @Controller
     public class UserController {
     @RequestMapping(method = RequestMethod.GET)
     public String testMestod(HttpServletRequest request){
     User user=(User)session.getAttribute("cart");
     return "testJsp";
     }
   }

ii)同时将User Object类作为范围

的会话对象

例如:

     @Scope("session")
     public class User
      {
      String user;
      /*  setter getter*/
      }

iii)您可以使用XML文件进行进一步的依赖,例如AOP等。

例如:

   <beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:aop="http://www.springframework.org/schema/aop"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
     http://www.springframework.org/schema/aop
      http://www.springframework.org/schema/aop/spring-aop-3.1.xsd">

    <bean id="user"    class="com.User" scope="session">     
        <aop:scoped-proxy/>
    </bean>
  </beans>