Struts2标签介绍详解编程语言

在jsp页面引入struts标签库:
<%@ taglib uri=”/struts-tags” prefix=”s”%>

property:标签用于输出指定值: 
<s:property value=“#name" default="a default value" />      
    default:可选属性, 如果需要输出的属性值为null,则显示该属性指定的值 
    escape:可选属性,指定是否格式化HTML代码。 
    value:可选属性,指定需要输出的属性值,如果没有指定该属性,则默认输出ValueStack栈顶的值。 
 
例子 :  
<s:property/>:输出栈顶的值输出: username=username_valueStack 
<s:property value="%{'<hr> hr的使用'}"  escape="false"  /> 
输出:<hr> hr的使用 
注:escape=“false”时,hr作为html标签使用 
 
 
set: 标签用于将某个值放入指定范围。 
    var:变量的名字,name,id和var表达的含义是一样的,name,id被var替代 
    scope:指定变量被放置的范围,该属性可以接受application、session、request、 page或action。如果没有设置该属性,则默认放置在值栈的context中。 
    value:赋给变量的值.如果没有设置该属性,则将ValueStack栈顶的值赋给变量。 
注意:value的内容被当成OGNL解析,如果是字符串需要使用%{‘字符串’} 
例子:  
<s:set value="#request.username"  var="xxx“ scope=“request” /><br> 
<s:property value=“#request.xxx" /><br>     
<s:set value="#request.username"  var="xxx" scope="page" /><br> 
<s:property value="#attr.xxx" /><br> 
<s:set value="#request.username"  var="xxx" /><br> 
<s:property value="xxx" /><br> 
或者:<s:property value=“#xxx" /><br>      
 
 
push:将对象放入栈顶,不能放入其他范围,当标签结束,会从栈顶删除。 
    value:要push到堆栈中的值 。 
例子:      
<s:push value="#request.username"> 
   <s:property/> 
</s:push><br> 
测试删除: <s:property/> 
 
 
bean标签:  实例化一个符合JavaBeans规范的class,标签体内可以包含几个     
    Param元素,用于调用setter方法给此class的属性赋值. 
    name:要被实例化的class名字(必须符合JavaBeans规范)  
    var:赋给变量的值.放置在request作用域中如果没有设置该属性,则对象被放置到栈顶 
例子: 
<s:bean  name="com.my.bean.Person" var="myperson"> 
    <s:param name="name" value="%{'zhang'}"></s:param> 
    <s:param name="age" value="34"></s:param> 
</s:bean><br> 
<s:property value="#myperson.name"/> 
 
 
Action: 通过指定命名空间和action名称,该标签允许在jsp页面直接调用Action  
    name:action名字(不包括后缀,如.action)  
    namespace:action所在命名空间  
    executeResult:Action的result是否需要被执行,默认值是false不执行 
 
例子:  
<package name="helloWord" namespace="/" extends="struts-default"> 
    <action name="hello" class="com.my.action.HelloAction"> 
        <result name="success">/success.jsp</result> 
    </action> 
</package>   
 
<s:action name="hello" namespace="/" executeResult="true" /> 
 
 
Iterator: 标签用于对集合进行迭代,这里的集合包含List、Set和数组 
    value:可选属性,指定被迭代的集合,如果没有设置该属性,则使用ValueStack栈顶的集合。 
    var:可选属性,引用变量的名称. 
    status:可选属性,该属性指定迭代时的IteratorStatus实例。 
该实例包含如下几个方法: 
 int getCount(),返回当前迭代了几个元素。 
 int getIndex(),返回当前迭代元素的索引。 
 boolean isEven(),返回当前被迭代元素的索引是否是偶数 
 boolean isOdd(),返回当前被迭代元素的索引是否是奇数 
 boolean isFirst(),返回当前被迭代元素是否是第一个元素。 
 boolean isLast(),返回当前被迭代元素是否是最后一个元素。 
 
例子: 
   <s:iterator value="#request.allList“ var=“person”> 
        <s:property value="name"/><br> 
        <s:property value=“#person.name”/> 
    </s:iterator> 
 
   <s:iterator value="#request.allList" var="person" begin="2" end="7"  step="2"> 
        <s:property value="#person.name"/><s:property value="#person.age"/><br> 
    </s:iterator>       
 
 
if/elseif/else  基本的流程控制.‘If’标签可单独使用也可以和‘Else If’标签和(或)一个多个‘Else’一起使用  
 
例子: 
 <table border="1">   
       <s:iterator value="allList" var="person"> 
          <tr> 
             <td><s:property value="#person.name"/></td> 
             <td><s:property value="#person.age"/></td> 
             <td><s:if test="#person.age<24">少年</s:if> 
                 <s:elseif test="#person.age<26">中年</s:elseif> 
                 <s:else>老年</s:else> 
             </td> 
          </tr> 
       </s:iterator>   
   </table> 
 
 
url: 该标签用于创建url,可以通过"param"标签提供request参数.  
    value:如果不提供就用当前action,使用value后缀必须加.action 
    action:用来生成url的action,如果没有则使用value 
    namespace :命名空间 
    var:引用变量的名称. 
 
例子: 
使用action<br> 
    <s:url action="ognlTagAction_test" namespace="/ognl" var="myurl"> 
         <s:param name="name" value="%{'zhang}"></s:param> 
         <s:param name="id" value="12"></s:param> 
    </s:url> 
    注意:当使用url时,应配合使用struts2的a标签 
    <s:a href="%{#url}" >xxxx</s:a><br>     
    使用value<br> 
    <s:url value="ognlTagAction_test.action" namespace="/ognl" var="myurl"> 
         <s:param name="id" value="12"></s:param> 
         <s:param name="cnname" value="%{'zhang'}"></s:param> 
    </s:url> 
 
 
form表单标签: 
<s:form namespace="/" action="tagAction" method="post" enctype="multipart/form-data"> 
        <s:textfield name="username" label="用户名"></s:textfield> 
        <s:password name="password" label="密码" showPassword="true"></s:password> 
        <s:hidden name="token" value="这里是值"></s:hidden> 
 
        <!-- 如果数据为list,显示的数据,与value的数据相同 --> 
        <s:checkboxlist list="{'睡觉','继续睡觉','上课睡觉'}" name="love" label="爱好"></s:checkboxlist> 
 
        <!-- 如果数据为map,显示map的value,标签value的值为map key  --> 
        <s:radio list="#{'0':'男','1':'女' }" name="sex" label="性别"></s:radio> 
 
        <s:select list="{'小班','中班','大班'}" name="xue" label="学历" headerKey="" headerValue="--请选择--"></s:select> 
 
        <s:submit value="注册"></s:submit> 
    </s:form> 
 
 
 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/12076.html

(0)
上一篇 2021年7月19日 14:18
下一篇 2021年7月19日 14:18

相关推荐

发表回复

登录后才能评论