zoukankan      html  css  js  c++  java
  • Struts2 标签详解

    在这里都已infoList这个集合作为示例,以下是Action类中的代码:

    public class TestAction extends ActionSupport {
        private List<Info> infoList;    
        public List<Info> getInfoList() {
            return infoList;
        }
        public void setInfoList(List<Info> infoList) {
            this.infoList = infoList;
        }
        public String myTest(){
            infoList=new InfoDao().findall(null);        
            return SUCCESS;
        }
    }

    通常大家长使用的就不再这里一一赘述,只详细介绍平时大家不常用的:

    数据标签

    一.property -- 显示数据

    1.default --默认值 --字符串,不是放OGNL

    <s:property value="infoListaaa" default="aaa" />
        <!-- 很显然infoListaaa是获取不到值的,但是当我设置default时,显示效果如下图所示。注意:default中只识别字符串! -->

    2.escape -- true/false 默认是true, false---html效果显示

    <s:property value="'<h1>AAA</h1>'" escape="false" />
        <!-- 当是true时,显示出来的就是<h1>AAA</h1>的字符串,但改为false时显示效果如下图所示: -->
      注意:value中识别的是OGNL表达式,要想让它识别字符串就要在其中加上单引号!

    3.value -- 要显示的内容,OGNL表达式 如果要显示字符串,需要用''引起来。

    二.set -- 设置一个新变量,赋值

    1.var,name -- 新变量名
    2.scope --范围 page/request/session/application
    3.value --变量值,OGNL表达式,要想让其识别字符串就要加单引号。

    <s:set var="s" value="infoList.size()"></s:set>
        <s:property value="#s" /><!-- 取值时在变量名前加上#,也可以不加 -->

    三.url -- 生成网址

    1.var -- 变量名
    2.value--要生成的URL地址,字符串需转义自OGNL,要手动写出完整的地址。

    <s:url var="u" value="baidu"></s:url>
        <s:property value="u" />

    输出结果是:

    3.action -- 要生成的URL地址,字符串需转义自OGNL,生成出绝对路径

    <s:url var="ua" action="baidu"></s:url>
        <s:property value="ua" />

    输出结果是:

    通常都会选择action来生成动态url。注意:action中也是只识别字符串,要想让它识别OGNL表达式,就要用%{}转义!

    当生成a标签的href时,在里边就要放一个标签进去,这样她才能识别,如下所示:

    <a href="<s:property value='ua' />">aaa</a>

    四.bean -- JavaBean的实现类

    1.name -- 要实例化的Java类

    <s:bean name="com.maya.model.Info" var="bbb">
            <s:param name="code" value="'这是自定义的代号'"></s:param>
        </s:bean>
        <s:property value="#bbb.code"/>
        <!-- 实例化一个对象,用param在bean中给其赋值 -->

    五.param -- 生成参数

    name -- 标签名
    value -- OGNL表达式,加单引号

    六.date -- 格式化输出日期

    name -- 要格式化的日期值 --- OGNL表达式
    format --- 格式化显示的格式。

    七.include -- 将jsp或servlet包含到页面中

    value -- JSP或Servlet文件

     八.debug

    控制标签

    1.if...else if ...else

    test -- 表格式 OGNL

    2.iterator

    var(变量名)
    value --OGNL
    status(状态) :even(奇数),odd(偶数),first,last,index(索引号),count(总数)
    begin
    end
    step

        <s:iterator var="i" value="infoList" status="st">
            <s:property value="#st.index+1"/>.<!-- 所以是从0开始的,我们可以在其中进行运算,让其从一开始 -->
            <s:property value="name"/><!-- 可以直接写infoList中的属性名称 -->
            <s:property value="#i.name"/><!-- 也可以直接写#i.属性名称,必须加# --><br>        
        </s:iterator>

    3.append/merge/subset(合并集合)

    append(两个集合交叉合并)

    merge(俩个集合正常合并)

    subset(截取,从第几个开始合并?)

    在这里不一一做示范了。

    id--新的对象名
    <param> 子元素

        <s:set value="{'aaa','bbb','ccc','ddd'}" var="aaa"></s:set>
        <s:set value="{'111','222','333','444'}" var="bbb"></s:set>
        <s:merge var="all"><!-- 将上面两个集合合并起来 -->
            <s:param name="one" value="#aaa"></s:param>
            <s:param name="two" value="#bbb"></s:param>
        </s:merge>
        <s:iterator value="#all" var="s">
            <s:property value="#s"/><br>
        </s:iterator>

    4.generater(拆分)

    seperator--分隔符
    val--被分隔的字符串
    var -- 分隔成的数组名

        <s:generator separator="|" val="'aaa|bbb|ccc|ddd|eee'" var="ss"></s:generator><!-- 定义一个字符串用|来分隔 -->
        <s:iterator value="#ss" var="s">
            <s:property value="#s"/><br>
        </s:iterator>

    5.sorted(对集合进行排序)

    source --- 集合
    comparator -- 对比器对象

        <s:set value="{'aaaa','bbbbbb','ccc','ddddd'}" var="arr"></s:set>
        <s:bean name="com.maya.util.MyComparator" var="myComparator"></s:bean>
        <!-- 实例化要找到的工具类 -->
        <s:sort comparator="myComparator" var="sss" source="#arr">
            <s:iterator var="str" ><!-- 定义一个变量,这个变量就是指的上述的已经排好序的集合 -->
                <s:property value="#str"/><br>
            </s:iterator>    
        </s:sort>
    com.maya.util.MyComparator

    package com.itnba.maya.util;
    
    import java.util.Comparator;
    
    public class MyComparator implements Comparator<String>{
    
        @Override
        public int compare(String o1, String o2) {//参数可以是object,
            if(o1.length() > o2.length()){
                return -1;
            }
            else if(o1.length() == o2.length()){
                return 0;//长度相等时
            }
            else{
                return 1;
            }
        }
    }
      这是给字符串排序,给对象,集合排序也是这个思路。

    UI标签

    1.form

    action --
    method

    <s:form action="News_get" method="post">

    当不指定action时,它会自动指定一个action。

    2.textfield(单行文本) / textarea(多行文本)

    name -- OGNL对象
    label -- 中文提示
    value -- 可以转成字符串的OGNL

    3.password

    4.checkboxlist(复选框,不是checkbox!) radio(单选按钮)

    name -- name值
    list -- value集合
    label --内容集合
    listkey --指定集合对象中的哪个属性作为选项的value
    listvalue--指定集合对象中的哪个属性作为选项的内容

    5.select

    list --value集合
    name --name值

    headerkey --开头值
    headervalue -开头内容
    listkey --指定集合对象中的哪个属性作为选项的value
    listvalue--指定集合对象中的哪个属性作为选项的内容

    6.checkbox

    fieldvalue-value值
    name-name值

    7.fielderror

    fieldname -- 要验证的字段

    8.a

    action=""

  • 相关阅读:
    ISO14229:2013 之 通过标志输入输出控制InputOutputControlByIdentifier (0x2F)
    ISO14229:2013 之 清除诊断信息ClearDiagnosticInformation (0x14)
    ISO14229:2013 之 通过标志写数据WriteDataByIdentifier (0x2E)
    Git常用命令及方法大全
    High concurrency Architecture Detailed _ Architecture
    Data structures and algorithms in Java, Part 1: Overview
    Java代码优化
    详解二分查找算法
    服务容灾
    分布式限流之一:redis+lua 实现分布式令牌桶,高并发限流
  • 原文地址:https://www.cnblogs.com/AnswerTheQuestion/p/6568386.html
Copyright © 2011-2022 走看看