`

Struts2 控制标签(十)按自定义条件取集合中的匹配元素为子集合

阅读更多
1.创建JavaBean实体类
package com.wl.control.Bean;

public class BBS {

    private String title;
    
    private String author;

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }
}

2.创建Action实体类
package com.wl.control.tagsAction;

import java.util.ArrayList;
import java.util.List;

import com.opensymphony.xwork2.ActionSupport;
import com.wl.control.Bean.BBS;

public class ShowWhereSubSetList extends ActionSupport {

    private List listBBS=new ArrayList();
    
    public List getListBBS() {
        return listBBS;
    }

    public void setListBBS(List listBBS) {
        this.listBBS = listBBS;
    }

    @Override
    public String execute() throws Exception {

        BBS bbs1=new BBS();
        bbs1.setAuthor("张三");
        bbs1.setTitle("我是张三");
        
        BBS bbs2=new BBS();
        bbs2.setAuthor("李四");
        bbs2.setTitle("我是李四");
        
        BBS bbs3=new BBS();
        bbs3.setAuthor("张九");
        bbs3.setTitle("我是张九");
        
        listBBS.add(bbs1);
        listBBS.add(bbs2);
        listBBS.add(bbs3);
        return "showwheresubsetlist";
    }

}

3.创建自定义条件过滤的Java类
package com.wl.operator.util;

import org.apache.struts2.util.SubsetIteratorFilter.Decider;

import com.wl.control.Bean.BBS;

public class WhereName implements Decider {

    public boolean decide(Object arg0) throws Exception {

        BBS bbs=(BBS)arg0;
        return bbs.getAuthor().contains("张");
    }

}

注释:这个条件过滤类要实现Decider接口,并且重写decide()方法。
4.创建JSP文件
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%@ taglib uri="/struts-tags" prefix="s" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  
  <body>
     <s:bean name="com.wl.operator.util.WhereName" var="whereref"></s:bean>
     <s:subset source="listBBS" var="newSubList" decider="whereref">
        <s:iterator value="#attr.newSubList" var="BBSBean">
         <s:property value="#BBSBean.author"/>
     </s:iterator>
     </s:subset>
     
  </body>
</html>

5.修改struts.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC 
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
   <package name="Struts2.1" extends="struts-default">
       <action name="showwheresubsetlist" class="com.wl.control.tagsAction.ShowWhereSubSetList">
           <result name="showwheresubsetlist">/controlTags/showwheresubsetlist.jsp</result>
       </action>
   </package>
</struts>

6.运行结果:


  • 大小: 30.9 KB
分享到:
评论

相关推荐

    struts2 自定义标签

    在Struts2中,自定义标签通常由Action类和结果页面共同完成,提供了一种声明式编程的方式,降低了视图与控制层的耦合度。 二、自定义标签的优点 1. 提高代码可读性:自定义标签将复杂的业务逻辑封装起来,使得HTML...

    基于struts2 自定义标签 分页

    1. **创建自定义标签**:在Struts2中,自定义标签是通过实现`org.apache.struts2.views.jsp.TagSupport`接口来创建的。你需要创建一个Java类,继承这个接口,并实现相关方法。例如,你可以创建一个名为`PagingTag`的...

    Struts2自定义分页标签

    本资源详细介绍了如何在Struts2中自定义分页标签,使得开发过程更加便捷。 在Struts2中,分页通常涉及到以下几个关键步骤: 1. **创建Action类**:首先,你需要创建一个Action类,该类将处理用户的请求,包括获取...

    Struts2自定义标签

    自定义标签是Struts2框架中的一个重要特性,它允许开发者创建自己的标签库,以更直观、易读的方式在JSP页面中处理业务逻辑。下面将详细介绍Struts2自定义标签的相关知识点。 首先,理解自定义标签的作用。在传统的...

    struts2自定义标签案例详解

    在Struts2中,自定义标签的实现是提升可重用性和简化视图层代码的一个重要特性。下面我们将深入探讨如何在Struts2中实现自定义标签,以及其背后的原理。 自定义标签的创建主要涉及以下三个步骤: 1. **创建taglib...

    struts实现自定义标签

    在 Struts 中,自定义标签是提供一种灵活的方式,使得视图层(通常为 JSP 页面)能够更好地与业务逻辑交互,从而提高代码的可读性和可维护性。本文将深入探讨如何在 Struts 中实现自定义标签。 一、自定义标签概述 ...

    STRUTS自定义标签

    STRUTS自定义标签STRUTS自定义标签STRUTS自定义标签STRUTS自定义标签STRUTS自定义标签STRUTS自定义标签STRUTS自定义标签STRUTS自定义标签STRUTS自定义标签STRUTS自定义标签STRUTS自定义标签STRUTS自定义标签STRUTS...

    tag struts2的自定义标签实例

    本实例将深入探讨如何在Struts2中实现自定义标签,以及其背后的原理和步骤。 首先,自定义标签在Web开发中的作用是提高代码的可读性和可维护性,它将复杂的Java代码封装起来,让HTML视图更加简洁。在Struts2中,...

    struts自定义标签详解

    Struts 是一个强大的Java Web应用程序开发框架,它提供了一套丰富的自定义标签库,使得开发者在构建用户界面时能够更加方便地处理业务逻辑和数据展示。本文将详细讲解Struts中的Bean Tags、HTML Tags和Logic Tags的...

    struts2标签使用例子

    在Struts2框架中,标签库是其一大特色,它提供了丰富的自定义标签,使得开发者能够更加便捷地创建动态页面。这些标签极大地简化了JSP页面的编写,提高了代码的可读性和可维护性。 1. **Struts2核心标签库**: - `s...

    Struts2、Spring、Freemarker自定义标签

    在Struts2中,可以通过实现`com.opensymphony.xwork2.util.ValueStackAware`接口创建自定义标签,让标签能够访问值栈中的数据。Spring框架也有自己的标签库,如Spring Taglib,可以简化JSP页面中的Spring Bean引用。...

    struts2自定义标签

    在Struts2中,自定义标签的实现通常包括以下步骤: 1. **定义TLD(Tag Library Descriptor)文件**: TLD文件是XML格式的,用于描述自定义标签的属性、行为以及它们之间的关系。在这个例子中,我们为分页标签添加...

    struts2标签库例子

    Struts2 标签库详解 Struts2 提供了一个强大的标签库,用于简化 Web 应用程序的开发过程。这些标签可以分为两类:通用标签和 UI 标签。下面,我们将详细介绍 Struts2 标签库的使用。 4.1 通用标签 通用标签用来...

    Struts2 自定义标签

    在Struts2中,自定义标签是开发者扩展框架功能和简化视图层编码的重要手段。自定义标签允许将复杂的逻辑封装到可重用的组件中,提高代码的可读性和可维护性。 在Struts2中创建自定义标签,通常涉及以下几个步骤: ...

    struts2的自定义标签例子

    下面将详细探讨如何在Struts2中创建和使用自定义标签。 首先,自定义标签是JSP标准标签库(JSTL)的扩展,允许我们定义自己的标签来简化页面编码。在Struts2中,自定义标签通常通过Action类和结果视图来与后台业务...

    Struts2实例 国际化 类型转换 struts标签

    在Struts2中,这通常通过资源 bundle 文件实现,例如`messages.properties`和`messages_zh_CN.properties`,分别用于存储默认语言和中文语言的文本。在Action或者JSP页面中,可以通过`&lt;s:text&gt;`标签来引用这些资源,...

    使用struts2的标签,在页面上用列表的方式列出action里集合中所有元素的所有属性值

    本篇文章将详细讲解如何使用Struts2的标签库,尤其是在页面上以列表的形式展示Action中集合对象的所有元素属性值。 首先,我们需要了解Struts2的核心概念:Action。Action是业务逻辑的载体,它处理请求,执行相应的...

Global site tag (gtag.js) - Google Analytics