zoukankan      html  css  js  c++  java
  • struts2常用标签

    一、OGNL(.、#、$、%)表达式
    Struts 2框架中,值栈(Value Stack)就是OGNL的根对象。如果用户需要访问值栈中的对象,则可以通过如下代码访问值栈中的属性:
    ${foo} // 获得值栈中的foo属性
    如果访问其他Context中的对象,由于不是根对象,在访问时需要加#前缀。
    application对象:用来访问ServletContext,如#application.userName或者#application [“userName”]
    相当于调用Servlet的getAttribute("userName")。
    session对象:用来访问HttpSession,如#session.userName或者#session[“userName”]
    相当于调用session.getAttribute("userName")。
    request对象:用来访问HttpServletRequest属性的Map,如#request.userName或者#request[“userName”]
    相当于调用request.getAttribute("userName")。
    在类中:Map request=(Map)ActionContext.getContext().get("request");
    request.put("name",getName());就是先得到request对象,然后把值放进去。
    在JSP页面中:<s:property value="#request.name"/>,其中#request.name相当于调用了request.getAttribute(“name”);

    二、数据标签
    1. <s:property>标签
    property标签的作用是输出指定值。
    value:指定需要输出的属性值,如果没有指定该属性,则默认输出值栈栈顶的值。
    例如:<s:property value="#request.name"/>
    2. <s:set>标签
    name:该属性是必选的,重新生成新变量的名字。
    例如:<s:property value="#session['user'].username"/>
    <s:property value="#session['user'].age"/>
    <s:property value="#session['user'].address"/>
    等价于:<s:set name="user" value="#session[‘user'] " />
    <s:property value="#user.username"/>
    <s:property value="#user.age" />
    <s:property value="#user.address" />
    3. <s:param>标签
    param标签主要用于为其他标签提供参数,该标签有如下几个属性:
    name:该属性是可选的,指定需要设置参数的参数名。
    value:该属性是可选的,指定需要设置参数的参数值。
    id:该属性是可选的,指定引用该元素的id。
    4. <s:bean>标签
    name:该属性是必选的,用来指定要实例化的JavaBean的实现类。
    id:该属性是可选的,如果指定了该属性,则该JavaBean实例会被放入StackContext中,从而可通过id属性来访问该JavaBean实例。
    例如:有一个Student类,该类中有name属性,并有其getter和setter方法:
    类中:public class Student {
    ?private String name;
    ?public String getName() { return name;?}
    ?public void setName(String name) {?this.name=name;?}
    }
    JSP页面中:<s:bean name="Student">
    ?<s:param name="name" value="'zhangsan'"/>
    <s:property value="name"/>
    </s:bean>
    或:<s:bean name="Student" id="s" >
    <s:param name="name" value="'zhangsan'"/>
    </s:bean>
    <s:property value="#s.name"/>
    5. <s:action>标签
    使用action标签可以允许在JSP页面中直接调用Action。
    name:该属性是必选的,指定该标签调用哪个Action。
    6. <s:date>标签
    date标签主要用于格式化输出一个日期。该标签有如下属性:
    format:该属性是可选的,如果指定了该属性,将根据该属性指定的格式来格式化日期。
    nice:该属性是可选的,指定是否输出指定日期和当前时刻之间的时差。默认为false。
    name:属性是必选的,指定要格式化的日期值。
    其用法为:
    <s:date name="指定日期取值" format="日期格式"/><!-- 按指定日期格式输出 -->
    <s:date name="指定日期取值" nice="true"/><!-- 输出时间差 -->
    <s:date name="指定日期取值"/><!—默认格式输出-->
    7. <s:include>标签
    include标签用于将一个JSP页面或一个Servlet包含到本页面中。
    value:该属性是必选的,指定需要被包含的JSP页面或Servlet。
    例如:<s:include value="JSP或Servlet文件" id="自定义名称"/>

    三、控制标签
    1. <s:if>/<s:elseif>/<s:else>标签
    只有if标签可以单独使用,if标签可以与多个elseif标签结合使用,但只能与一个else标签使用。其用法格式如下:
    <s:if test="表达式">
    ?标签体
    </s:if>
    <s:elseif test="表达式">
    标签体
    </s:elseif>
    <!--允许出现多次elseif标签-->
    ...
    <s:else>
    标签体
    </s:else>
    2. <s:iterator>标签
    该标签主要用于对集合进行迭代,这里的集合包含List、Set,也可以对Map类型的对象进行迭代输出。该标签的属性如下:
    value:该属性是可选的,指定被迭代的集合,被迭代的集合通常都由OGNL表达式指定。如果没有指定该属性,则使用值栈栈顶的集合。
    status:该属性是可选的,指定迭代时的IteratorStatus实例,通过该实例可判断当前迭代元素的属性。
    例如:<%@ page language="java" pageEncoding="utf-8"%>
    <%@taglib uri="/struts-tags" prefix="s" %>
    <html>
    <head>
    <title>控制标签</title>
    </head>
    <body>
    <table border="1" width="200">
    <s:iterator value="{'apple','orange','pear','banana'}" id="fruit" status="st">
    <tr <s:if test="#st.even"></s:if>>
    <td><s:property value="fruit"/></td>
    </tr>
    </s:iterator>
    </table>
    </body>
    </html>
    3. <s:append>标签
    例如:<body>
    <s:append id="newList">
    <s:param value="{'apple','orange','pear','banana'}"/>
    <s:param value="{'chinese','english','french'}"/>
    </s:append>
    <table border="1" width="200">
    <s:iterator value="#newList" id="fruit" status="st">
    <tr <s:if test="#st.even"></s:if>>
    <td><s:property value="fruit"/></td>
    </tr>
    </s:iterator>
    </table>
    </body>
    4.<s:merge>标签
    与append标签作用相似,只是它们所拼接产生的新集合元素顺序不同,其中merge是每次分别在每一个集合取一个元素进行拼接。

    四、表单标签
    1. <s:checkboxlist>标签
    <s:checkboxlist label="请选择你喜欢的水果" list="{'apple','oranger','pear','banana'}" name="fruit">
    </s:checkboxlist>
    或者为:
    <s:checkboxlist label="请选择你喜欢的水果" list="#{1:'apple',2:'oranger',3:'pear',4:'banana'}" name="fruit">
    </s:checkboxlist>
    2. <s:combobox>标签
    <s:combobox label="请选择你喜欢的水果" list="{'apple','oranger','pear','banana'}" name="fruit">
    </s:combobox>
    3. <s:datetimepicker>标签
    <s:form action="" method="">
    ?<s:datetimepicker name="date" label="请选择日期"></s:datetimepicker>
    </s:form>
    4. <s:select>标签
    <s:select list="{'apple','oranger','pear','banana'}"
    label="请选择你喜欢的水果"></s:select>
    或者为:
    <s:select list="fruit" list="#{1:'apple',2:'oranger',3:'pear',4:'banana'}"
    listKey="key" listValue="value"></s:select>
    5. <s:radio>标签
    <s:radio label="性别" list="{'男','女'}" name="sex"></s:radio>
    或者为:
    <s:radio label="性别" list="#{1:'男',0:'女'}" name="sex">
    </s:radio><

     
  • 相关阅读:
    [好程序员训练营]Objective-C学习笔记---基本数据结构NSNumber
    [好程序员训练营]Objective-C学习笔记---基本数据结构NSDictionary
    [好程序员训练营]Objective-C学习笔记--基本数据结构NSArray
    [好程序员训练营]Objective-C学习笔记---基本数据结构NSString
    [好程序员训练营]Objective-C学习笔记---点语法
    [好程序员训练营]Objective-C学习笔记---构造函数和析构函数
    【好程序员训练营】Objective-C学习笔记----------成员变量和成员函数的封装
    【好程序员训练营】Objective-C学习笔记______类和对象的使用
    【好程序员训练营】Objective-C学习笔记(类的声明)NO1
    React Native 手工搭建环境 之iOS篇
  • 原文地址:https://www.cnblogs.com/zhuyuewei/p/6036231.html
Copyright © 2011-2022 走看看