struts小知识点

来源:互联网 发布:amd显卡对什么优化好 编辑:程序博客网 时间:2024/06/07 22:47

1、struts2 spring集成时action的class属性值意义  

struts2单独使用时action由struts2自己负责创建;与spring集成时,action实例由spring负责创建。这导致在两种情况下struts.xml配置文件的略微差异。

假如:LoginAction在包cn.edu.jlu.cs.action中。

a. struts2单独使用时,action的class属性为LoginAction的全路径名,如下:

<action name="login" class="cn.edu.jlu.cs.action.LoginAction">           <result name="studentSuccess">                /student/studentindex.jsp           </result>

       b. struts2与spring集成时,class属性是spring的applicationContext.xml中配置的bean的id属性值。

//struts.xml               ...<action name="login" class="LoginAction">           <result name="studentSuccess">                /student/studentindex.jsp           </result>               ...----------------------------------------------------------------------------------------//applicationContext.xml               ...<bean id="LoginAction" class="cn.edu.jlu.cs.action.LoginAction" />


2、在struts2的ognl语言中,访问非根对象属性,例如#session.msg表达式,由于Struts 2中值栈被视为根对象,所以访问其他非根对象时,需要加#前缀。实际上,#相当于ActionContext. getContext();#session.msg表达式相当于ActionContext.getContext().getSession(). getAttribute("msg") 

3、struts2获得application、session、request的方法

  1. // 获得ActionContext实例,以便访问Servlet API  
  2.         ActionContext ctx = ActionContext.getContext();  
  3.         // 存入application  
  4.         ctx.getApplication().put("msg""application信息");  
  5.         // 保存session  
  6.         ctx.getSession().put("msg""seesion信息");  
  7.         // 保存request信息  
  8.         HttpServletRequest request = ServletActionContext.getRequest();  
  9.         request.setAttribute("msg""request信息");

4、struts是表现层的框架,spring是业务层的框架,hibernate是持久层的框架

5、struts2来源于webwork2,并且与struts1.x完全不兼容



原创粉丝点击