Struts2的控制标签库和数据标签库(六)下

简介: Struts2的控制标签库和数据标签库(六)

二.五 subset截取标签


<s:subset source="#request.studentList1" count="2" start="2">
  <s:iterator status="status">
  <tr>
    <td><s:property value="#status.index+1"/></td>
    <td><s:property value="id"/></td>
    <td><s:property value="name"/></td>
    <td><s:property value="age"/></td>
  </tr>
  </s:iterator>
</s:subset>


source为要截取的集合的值, start为开始截取的点,从1开始. count为截取的数目


二.六 merge 添加标签(无序添加)


<s:merge var="studentList3">
    <s:param value="#request.studentList1"></s:param>
    <s:param value="#request.studentList2"></s:param>
</s:merge>
<table>
    <tr>
        <th>序号</th>
        <th>编号</th>
        <th>姓名</th>
        <th>年龄</th>
    </tr>
    <s:iterator value="studentList3" status="status">
    <tr>
        <td><s:property value="#status.index+1"/></td>
        <td><s:property value="id"/></td>
        <td><s:property value="name"/></td>
        <td><s:property value="age"/></td>
    </tr>
    </s:iterator>
</table>


添加的时候是没有顺序的,与add用法基本相同。


二.七 sort排序标签


二.七.一 给定数据


<%
  List<Student> studentList1=new ArrayList<Student>();
  studentList1.add(new Student(1,"张三",20));
  studentList1.add(new Student(3,"李四",10));
  studentList1.add(new Student(5,"王五",40));
  studentList1.add(new Student(7,"赵六",30));
  request.setAttribute("studentList1",studentList1);
%>


二.七.二 需要对Student添加比较器,添加比较器MyComparator


package com.java1234.comparator;
import java.util.Comparator;
import com.yjl.pojo.Student;
public class MyComparator implements Comparator<Student>{
  public int compare(Student s1, Student s2) {
    if(s1.getAge()>s2.getAge()){
      return 1;
    }else if(s1.getAge()<s2.getAge()){
      return -1;
    }
    return 0;
  }
}


二.七.三 指定bean实例化MyComparator比较器


<s:bean id="myComparator" name="com.java1234.comparator.MyComparator"></s:bean>


二.七.四 在s:iterator循环输出,包括在s:sort标签里面


<tbody>
        <s:sort comparator="#myComparator" source="#request.studentList1" >
      <s:iterator status="status">
  <tr>
    <td><s:property value="#status.index+1"/></td>
    <td><s:property value="id"/></td>
    <td><s:property value="name"/></td>
    <td><s:property value="age"/></td>
  </tr>
  </s:iterator>
  </s:sort>
</tbody>


三 数据标签库的用法


三.一 property输出标签器


<s:property value="" default=""  escapeHtml=""/>
<%
  request.setAttribute("name","<font color='red'>两个蝴蝶飞</font>");
%>
取出作用域中值:<s:property value="#request.name"/> <br/>
没有值为显示默认值:<s:property value="#request.name1" default="没有两个蝴蝶飞"/><br/>
是否忽略html标签为true:<s:property value="#request.name" escapeHtml="true"/><br/>
是否忽略html标签为false:<s:property value="#request.name" escapeHtml="false"/>


默认值是true, 表示将标签当成普通文字输出。 为false时会进行相应的翻译转换。


20200609113053407.png


三.二 set标签的用法


set设置普通的数字时:


没有作用域:
<s:set var="name" value="1"></s:set>
<s:property value="#name"/> <br/>


注意此时value=“1”


如果设置字符串或者英文字母即非数字时, 如value=“abc”, value="两个蝴蝶飞"时,是无法进行显示的.


会将abc和中文当成变量的。


设置在里面添加’’ 即 value="‘abc’"


没有作用域:<s:set var="name" value="'两个蝴蝶飞'"></s:set>
    <s:property value="#name"/> <br/>


set时添加作用域:scope


设置作用域:<s:set var="name" value="'两个蝴蝶飞'" scope="session"/>
    <s:property value="#session.name"/> <br/>
    <s:property value="#attr.name"/> <br/>


除了可以用它们的相同的作用域取出数据之外,


还可以用 #attr取出全部作用域的值,按照page,request,session,application进行依次获取


三.三 调试标签 debug


<s:debug></s:debug>


20200609113109420.png


可以分别显示 Value Stack 和 Stack Context 里面的数据,便于调试。


三.四 param 传参标签


<s:param name="" value="" />


传递参数,可用在<s:bean> 标签或者<s:url> 标签里面,也可以放置在<s:a >标签里面


注意,如果是普通数字的话,为value=“2” ,如果是字符串的中,应该是 value=" ‘字符串值’ " (里面有一个’’)


三.五 Bean实体类标签


<s:bean name="com.yjl.pojo.User" var="user">
  <!-- 用s:param传递参数 -->
  <s:param name="name" value="'两个蝴蝶飞'"></s:param>
  <s:param name="age" value="24"></s:param>
</s:bean>
<!-- 输出数据 -->
<s:property value="#user.name"/><br/> 
<s:property value="#user.age"/><br/> 


name为全限定名称,可以方便地将属性赋值到对象中。


三.六 url 网址标签和a标签


url中得到的只是一个链接,并不能单独 的使用,需要将其与<s:a> 标签共同组合使用。


<s:url action="Single_getData" namespace="/" var="a">
  <s:param name="name" value="'HelloStruts2'"></s:param>
</s:url>
显示出url的值:<s:property value="#a"/> <br/>
要引用s:url时,用%强制转换: <s:a href="%{#a}">跳转</s:a>


2020060911313179.png


<s:a> 标签也可以直接使用action进行跳转,也可以带参数。不用href属性,用action属性。


<s:a action="Single_getData" namespace="/" var="a">
  <s:param name="name" value="'HelloStruts2'"></s:param>
  跳转
</s:a>


20200609113147132.png


其中<s:a>标签也有一个target属性,与html中target属性意义一样,有target="_blank", target="_self"等。


三.七 include包含标签


<s:include value="head.jsp"></s:include>


与jsp中的静态包含一样。 注意value的值,文件的路径是否正确。 ctrl+鼠标点击时,可以正确跳转到相关的路径。


三.八 date标签


<s:date> 可以对日期进行相应的处理,使其按照规定的格式进行显示,前堤是一个正确的日期或者时间格式,不需要开发者在后端进行单独的日期处理了。


<%
  request.setAttribute("currentDate",new java.util.Date());
%>
<s:date name="#request.currentDate" format="yyyy年MM月dd日  HH mm:ss"/>


name为要显示的那个日期的值,format为显示的格式, y,M,d,H,m,s,S,与util.Date中的format的表达方式一样。


20200609113207914.png


这就是Struts2的控制标签和数据标签的基本用法.


谢谢您的观看!!!

相关文章
|
4月前
|
存储 前端开发 Java
JSTL核心标签库
这篇文章详细介绍了JSTL核心标签库中的表达式标签,包括输出、变量设置、变量移除、导入、重定向、传递参数、条件判断、条件选择、循环等标签的语法和使用示例,旨在简化JSP程序的开发。
|
XML SQL Java
JavaWeb--EL表达式&JSTL 标签库
JavaWeb--EL表达式&JSTL 标签库
77 0
|
SQL XML Java
JSTL标签库(JSP标准标签库)
JSTL(JSP Standard Tag Library,核心标签库)是 JSP 标签的集合,它封装了 JSP 应用的通用核心功能。 JSP 标签是一组与 HTML 标签相似,但又比 HTML 标签强大的功能标签。JSTL 用来简化 JSP 开发,可以使我们不用嵌入 Java 代码就能够开发出复杂的 JSP 页面。 JSTL 包含 5 类标签库:core 标签库、fmt 标签库、fn 标签库、XML 标签库和 SQL 标签库。这 5 类标签库基本覆盖了 Web 开发中的所涉及的技术展示。
|
Java
JavaWeb--EL表达式&JSTL 标签库(二)
JavaWeb--EL表达式&JSTL 标签库(二)
107 0
JavaWeb--EL表达式&JSTL 标签库(二)
|
Java API 数据格式
JavaWeb--EL表达式&JSTL 标签库(三)
JavaWeb--EL表达式&JSTL 标签库(三)
159 0
JavaWeb--EL表达式&JSTL 标签库(三)
|
前端开发 Java
Struts2的控制标签库和数据标签库(六)上
Struts2的控制标签库和数据标签库(六)
165 0
Struts2的控制标签库和数据标签库(六)上
|
SQL XML Java
12.标准标签库(JSTL)
1.JSTL标签库安装     JSTL的概念:   JSP标准标签库(JSP Standard Tag Library)是一个实现 Web 应用程序中常见的通用功能的定制标记库集功能包括迭代和条件判断、数据管理格式化、XML 操作以及数据库访问JSTL标签库由几个子标签库组成,主要分为以下几种:核心标签、XML标签、格式化标签(I18N)、SQL标签、函数标签库。
1891 0
|
Java 应用服务中间件 关系型数据库
JSTL 核心标签库使用总结
JSTL全称是Java标准标签库,是为了弥补默认JSP在视图表现方面的不足而出现的。其实在2017年的Java开发中用到的不是很多了。现在新的模板引擎比如Thymeleaf这样的貌似更加流行。
985 0
|
SQL Java 数据库连接