18.1.Struts_不常用通用标签

Struts2_通用标签


property 标签

property 标签用来输出一个值栈属性的值
  • default [String] 可选 默认:,如果value值为null或没有给定,将显示该属性值
  • escape [Boolean]
属性类型默认值说明
defaultString可选,如果value值为null或没有给定,将显示该属性值
escapeBooleantrue可选,是否要对HTML特殊字符进行转义
valueString<来自栈顶对象>将要显示的值
示例:
输出 Action 属性 customerId 的值: <s:property value="customerId"/>
输出 session 属性 userName 的值: <s:property value="#session.userName"/>
在许多情况下, JSP EL 可以提供更简洁的语法

url 标签

这里写图片描述

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>

    <s:debug></s:debug>

    <!-- action:指定生成的url为哪个action ; var:指定用来被压入ContextMap中的键值-->
    <s:url action="czy_save" var="url"></s:url>
    ${url } <br><br><br><br>

    <s:url action="czy_save" var="url1">
        <s:param name="dlh" value="54110"></s:param>
    </s:url>
    ${url1 } <br><br><br><br>

    <s:url action="czy_save" var="url2">
        <s:param name="dlh" value="54110"></s:param>
        <!-- 对于非数字的value值,会自动进行OGNL解析 -->
        <s:param name="request" value="request"></s:param>
        <!-- 对于OGNL解析后不存在的value将不做处理 -->
        <s:param name="name" value="tom"></s:param>
        <!-- 若不希望解析可使用单引号 -->
        <s:param name="hobby" value="'reading'"></s:param>
    </s:url>
    ${url2 } <br><br><br><br>

    <s:url action="czy_save" var="url3" includeParams="all">
    </s:url>
    ${url3 } <br><br><br><br>

    <s:url action="czy_save" var="url4" namespace="/user" method="save">
    </s:url>
    ${url4 } <br><br>


</body>
</html>

   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42

这里写图片描述


set 标签

向page、request、session、application 域对象中加入一个属性值。
    <s:set name="xuehao" value="541107030" scope="request"></s:set>
    ${requestScope.xuehao }<br><br>
    <!-- 对于非数字的value值,会自动进行OGNL解析 -->
    <s:set name="banji" value="likesheng" scope="request"></s:set>
    ${requestScope.banji }<br><br>


   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

这里写图片描述


push 标签

push 标签将把一个对象压入 ValueStack 而不是压入 ContextMap.
push 标签在标签起始时把一个对象压入栈, 标签结束时将对象弹出栈.
名字类型默认值说明
valueString将被压入Value Stack栈的值

    <%
    Person p = new Person("tom",24);
    request.setAttribute("person", p);
    %>
    <s:push value="#request.person">
    姓名:${name }<br>
    </s:push>
    姓名:${name }
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

这里写图片描述


if, else 和 elseif 标签

这三个标签用来进行条件测试, 它们的用途和用法类似于 if, else 和 elseif 关键字. 其中 if 和 elseif 必须有 test 属性
名称类型默认值说明
testBoolean测试条件

     <s:if test="age>65">
        老年
    </s:if>
    <s:elseif test="age>40">
        中年
    </s:elseif>
    <s:elseif test="age>18">
        青年
    </s:elseif>
    <s:else>
        少年
    </s:else>
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

这里写图片描述
这里写图片描述


iterator 标签

iterator 标签用来遍历一个数组, Collection 或一个 Map, 并把这个可遍历对象里的每一个元素依次压入和弹出 ValueStack 栈

    <%
    List<Person> persons = new ArrayList<Person>();
    persons.add(new Person("A",10));
    persons.add(new Person("B",20));
    persons.add(new Person("C",30));
    persons.add(new Person("D",40));
    persons.add(new Person("E",50));

     request.setAttribute("persons", persons);
     %>

     <s:iterator value="#request.persons" status="s">
        name--${name }--index--${s.index}--age--${age }--${s.count }<br>
     </s:iterator>
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

这里写图片描述

名字类型默认值说明
valueString将被遍历的可遍历对象
statusorg.apache.struts2.views.jsp.IteratorStatus
varString用来引用这个可遍历对象中的当前元素的变量

iterator 标签的 status 属性的属性值

这里写图片描述

sort 标签

sort 标签用来对一个可遍历对象里的元素进行排序.
名字类型默认值说明
comparatorjava.util.Comparator在排序过程中使用的比较器
sourceString将对之进行排序的可遍历对象
varString用来引用因排序而新生成的可遍历对象的变量

    <%
    List<Person> persons = new ArrayList<Person>();
    persons.add(new Person("A",10));
    persons.add(new Person("D",40));
    persons.add(new Person("B",20));
    persons.add(new Person("E",50));
    persons.add(new Person("C",30));

     request.setAttribute("persons", persons);
     %>

     <s:iterator value="#request.persons" status="s">
        name--${name }--index--${s.index}--age--${age }--${s.count }<br>
     </s:iterator>
     <br><br>
     <!-- s:sort 可以对集合中的元素进行排序 -->
     <%
        PersonComparator pc = new PersonComparator();
        request.setAttribute("comparator", pc);
      %>
      <s:sort comparator="#request.comparator" source="#request.persons" var="person_">
        <s:iterator value="#attr.person_">
            ${name }--${age } <br>
        </s:iterator>
      </s:sort>
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

package com.qbz.struts2_02;

import java.util.Comparator;

public class PersonComparator implements Comparator<Person> {

    @Override
    public int compare(Person o1, Person o2) {
        return o1.getName().compareTo(o2.getName());
    }

}

   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

这里写图片描述


date 标签

date 标签用来对 Date 对象进行排版

这里写图片描述

format 属性的值必须是 java.text.SimpleDateFormat 类里定义的日期/时间格式之一.
 <!-- date 标签 -->
      <s:date name="#session.date" format="yyyy-MM-dd hh:mm:ss" var="data_"/>
      ${data_ }
   
   
  • 1
  • 2
  • 3

这里写图片描述


a 标签

a 标签将呈现为一个 HTML 连接. 这个标签可以接受 HTML 语言中的 a 元素所能接受的所有属性.
     <s:iterator value="#request.persons">
         <!-- href中对name进行强制OGNL解析  %{} -->
        <s:a href="getPerson.action?name=%{name}">${name }</s:a><br>
     </s:iterator>
   
   
  • 1
  • 2
  • 3
  • 4

这里写图片描述


以下标签不常用,了解。

action 标签

action 标签用在页面上来执行一个 action.
action 标签还会把当前 Action 对象压入 ValueStack 值栈的 ContextMap 子栈.

这里写图片描述


bean 标签

bean 标签将创建一个 JavaBean, 并把它压入 ValueStack 值栈的 ContextMap 子栈. 这个标签的功能与 JSP 中的 useBean 动作元素很相似

这里写图片描述


include 标签

include 标签用来把一个 Servlet 或 JSP 页面的输出包含到当前页面里来.

这里写图片描述


append, merge 标签

append 标签用来合并可遍历对象
merge 标签用来交替合并可遍历对象

这里写图片描述

这里写图片描述


generator 标签

generator 标签用来生成一个可遍历对象并把它压入 ValueStack 栈.
generator 标签结束标记将弹出遍历对象

这里写图片描述

如果在一个 generator 标签里给出了 converter 属性, 新生成的可遍历对象里的每一个元素都会传递到该属性所指定的方法进行必要的转换.

这里写图片描述

subset 标签

subset 标签用来创建一个可遍历集合的子集.
subset 标签通过 decider 属性来创建一个可遍历集合的子集

这里写图片描述

这里写图片描述


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值