您的位置:首页 > 编程语言 > Java开发

struts2对一些属性的使用和对session封装对象类型采用jstl技术的遍历(配图解)

2013-07-13 11:18 609 查看
在struts2中如何实现像jsp中request,session,appliaction的使用。其实有两种方法。下面通过一个案列来说明两个方法的使用。

先写一个test.java类

packagecom.test;
 
importjavax.servlet.ServletContext;
importjavax.servlet.http.HttpServletRequest;
 
importorg.apache.struts2.ServletActionContext;
 
import com.opensymphony.xwork2.ActionContext;
 
public
class
Test {
publicString myMethod(){
    ActionContext actionContext=ActionContext.getContext();
    actionContext.put("req",
"这是一个request");
    actionContext.getSession().put("sess",
"这是一个seesion");
    actionContext.getApplication().put("app",
"这是一个application");
    return
"aa";
}
public
String myMethod2()throws Exception{
    HttpServletRequestrequest=ServletActionContext.getRequest();
    request.setAttribute("req2",
"这是一个request2");
    request.getSession().setAttribute("sess2",
"这是一个seesion2");
   
    ServletContext context=ServletActionContext.getServletContext();
    context.setAttribute("app2",
"这是一个application2");
    return
"bb";
}
}
这里面method和method2方法是分别实现request,session,application的例子。不过在正常情况下建议使用方法一。

然后在struts2.Xml中:

<package
name="fish"namespace="/test"
extends="struts-default">
 
<action
name="redfish"class="com.test.Test"
method="myMethod">
<result
name="aa">/index.jsp</result>
</action>
<action
name="bluefish"class="com.test.Test"
method="myMethod2">
<result
name="bb">/index.jsp</result>
</action>
</package>
 

最后在index.jsp中写

${applicationScope.app}<br>
   ${sessionScope.sess}<br>
   ${requestScope.req}<br>
   ${applicationScope.app2}<br>
   ${sessionScope.sess2}<br>
   ${requestScope.req2}<br>

 

我们在浏览器中输入

http://127.0.0.1:8080/struts2test5/test/redfish

可以看到



我们接着在浏览器中输入:

http://127.0.0.1:8080/struts2test5/test/bluefish

可以看到



我们不仅可以看到后面3个,还可以看到前面两个,这更可以说明一个时间session和appliaction的生命周期。

 

那么如何实现这些request,session,application来实现一个对  对象的封装和拆箱呢。

我们可以在test.JAVA再加一个方法

publicString myMethod3(){
    ActionContext actionContext=ActionContext.getContext();
   
    actionContext.getSession().put("sess3",Arrays.asList("雅酷","飞鱼","李四")
);
   
    return
"cc";
}
}

然后再struts2.XML再加一个action

<action
name="yellowfish"class="com.test.Test"
method="myMethod3">
<result
name="cc">/index.jsp</result>
</action>

在index.JSP加入内容的同时先引入两个jar一个是jstl和standar。使用标签就行遍历。

在jsp的head先加

 

%@tagliburi="http://java.sun.com/jsp/jstl/core" prefix="fish" %

然后在jsp的body中加入

<fish:forEach
items="${sess3}" var="name">
   ${name}<br>
  
   </fish:forEach>

我们接着在浏览器中输入:

http://127.0.0.1:8080/struts2test5/test/yellowfish

我们可以看到:



对象被遍历出来,但是上面有两句,这次我们已经把服务器停了。却还有两句话,因为session其实他是有生命时间的。所以session的生命周期在随着服务器的关闭而消失是不是很严谨的。Session其实底层是用cookies来完成的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐