struts2.0的常用标签

一、property标签重点内容 
property表签用于输出一个值栈中德智 
1、如何查看当前web应用中的值栈呢,可以在jsp页面中加上这个标签对,启动服务器,点击debug按钮就可以显示当前web应用的值栈 
2、常用的属属性和值列举如下表: 
名字 类型 默认值 说明 
default String 可选,如果值为null或者没有给定,将显示该属性值 
escape boolean true 可选,是否要对html特殊字符进行转义 
value String 来自栈顶对象 将要显示的值 
3、示例 
1)输出Action属性customerId的值 

<s:propertyvalue=“customerId”/>

2)输出session属性userName 的值 

<s:property value=“#session.userName”/>


3)如果value属性没有给出,Value属性没有给出,ValueStack值栈栈顶对象的值被输出。 
4) 对于Map SessionMap requestMap的属性值。 
5)对于请求参数的获取可以通过parameters对象进行获取(例如下边是获取第一个参数,因为参数的属性是一个数组形式) 
<s:property value="#parameters.name[0]"/>
<s:property value="#session.date"/>
二、url创建一个url字符串 
形式如下 
s:property :打印值栈中的属性值的:对于值栈中对应的属性值
<br>
<s:property value="productDesc"/>
<br>
对于Map  SessionMap  requestMap的属性值。
<br>
<s:property value="#parameters.name[0]"/>
<s:property value="#session.date"/>
<br>
s:jurl创建一个url字符串的
<br>
<br>
<s:url value="/getProduct" var="url" >
<!-- 指定url包含的参数,2002不可能是一个属性名,struts2把2002直接作为属性值。-->
<s:param name="productId" value="2002"></s:param>
</s:url>
url:${url }
<!-- 显示的内容形式如下
/strut2-4/getProduct?productId=2002 -->
<br>
<br>
<s:url value="/getProduct" var="url2">
<!-- 对于value值。会对value进行ognl解析。 相当于ognl认为它是一个属性名字而不是值,因此输出的是1001-->
<s:param name="productId" value="productId"></s:param>
</s:url>
url2:${url2 }
<!-- 显示内容如下
 url2:/strut2-4/getProduct?productId=1001 -->
<br>
<br>
<s:url value="/getProduct" var="url3">
<!--若不希望尽进行ognl解析,则进行单引号进行括起来  -->
<s:param name="productId" value="'abcdef'"></s:param>
</s:url>
url3:${url3 }
<!-- 显示内容如下
 url3:/strut2-4/getProduct?productId=abcdef 
-->
<br>
<br>
<!-- 构建一个请求action的地址 -->
<s:url action="testAction" namespace="/helloword" method="save" var="url4">
</s:url>
url4:${url4 }
<!-- 显示内容如下
url4:/strut2-4/helloword/testAction!save.action  -->
<br>
<br>
<!--  -->
s:url var  url5  includeParameters="all"
<s:url value="testUrl" var="url5" includeParams="all"></s:url>
url5:${url5 }
<!-- 结果如下
url5:testUrl?name=pdsu -->
<!-- 注意上边这个形式如果includeParams的值为get只能获取get方式的请求参数形式,对于post的请求参数形式不适用
如果其值为all那么对于post请求和get请求都使用 -->


三、set标签 
1)s:set:向page,request,session,application域对象中加入一个属性值。 

<!-- 对value属性值夜自动进行ognl解析,所以我们可以不让其进行解 析 -->
<s:set name="productName" value="'ab'" scope="request"></s:set>
<br>
<!-- 将放入的productName1取出.此时一定要确保在action类中要有productDesc属性 -->
productName1:${requestScope.productName } 
拓展:其他相关域对象的使用方法和此基本上完全相同,可以进行实际应用 
四、push标签 
s:push:把一个对象在标签开始后压入到值栈中,标签结束时,弹出值栈 

<% 
Person p=new Person(); 
p.setName(“weidianlu”); 
p.setAge(15); 
request.setAttribute(“p”, p);

%>
<s:push value="#request.p">
    ${name }//此时可以显示栈里的p对象的name属性
</s:push>
<br>
标签结束后${name }
<!-- 标签结束后没有效果 -->
<br>
**五、if标签**
<s:if test="productPrice>1000">
            I7处理器         //其中productPrice是Action类的一个属性
</s:if>
<s:if test="productPrice>100">
    I5处理器
</s:if>
<s:else>
    不存在
</s:else>
<br>
<br>
<%
Person p=new Person();
p.setName("weidianlu");
p.setAge(15);
request.setAttribute("p", p);

%>
<s:if test="#request.p.age>10">
    大于十岁
</s:if>
<s:if test="#request.p.age>14">
    大于十四岁
</s:if>
<s:else>
    不满足要求
</s:else>
<!-- 显示结果为
大于十岁 大于十四岁  -->

六、iteration标签 
s:iterator 便利集合的,把这个可便利对象里的每一个元素一次压入和弹出 


<% 
List listp=new ArrayList(); 
listp.add(new Person(“AA”,10)); 
listp.add(new Person(“BB”,15)); 
listp.add(new Person(“CC”,25)); 
listp.add(new Person(“DD”,28)); 
listp.add(new Person(“EE”,36)); 
listp.add(new Person(“FF”,41)); 
listp.add(new Person(“GG”,42)); 
request.setAttribute(“listp”,listp); 
%> 

开始遍历域对象的属性的对象中的集合 

name {age } 


//总结: 
2.Struts2自动把Action对象放入值栈中, 
1)放入的时间点为:Struts2终将调用Action类的相关方法。在调用该方法之前, 
–〉先创建一个StrutsActionProxy对象, 
–>再创建StrutsActionProxy之后,把Action对象放入到了值栈中 
最后在许多情况下jsp中EL表达式可以提供更简洁的语法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

uniquewdl

匆忙的人生,总有你喜欢的文章

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值