我在行动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>
答案 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>