Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 1174|回复: 0

struts2中常用的控制标签

[复制链接]
  • TA的每日心情
    开心
    2021-3-12 23:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2011-6-6 15:39:02 | 显示全部楼层 |阅读模式

    1,if,elseif,else标签控制流程
    <struts:if><struts:elseif><struts:else>,其中if标签与else标签都有test属性,返回true或者false。
    [color=#990066,strength=3);]ifTag.jsp

      <struts:form action="if">
        <struts:textfield name="name" label="姓名:"></struts:textfield>
        <struts:submit value="  提交 "></struts:submit>
      </struts:form>
      
      <!-- 利用request参数判断 -->
      <struts:if test="#parameters.name[0] == 'Kurt'">  <!-- 如果参数为Kurt -->
        Hello,Kurt.
      </struts:if>
      <struts:elseif test="#parameters.name[0] == 'Mart'">
        Hello,Mart.
      </struts:elseif>
      <struts:else>    <!-- 否则 -->
        Hello,Other Buddies.
      </struts:else>
        <br/>
        <br/>
       
      <!-- 利用Action属性判断 -->  
      <struts:if test="name == 'Kurt'">  <!-- 如果变量为Kurt -->
        Hello,Kurt.
      </struts:if>
      <struts:elseif test="name == 'Mart'">  <!-- 如果name变量为Matt -->
        Hello,Matt.   
      </struts:elseif>
      <struts:else>         <!-- 否则 -->
        Hello,Other Buddies.
      </struts:else>
    [color=#990066,strength=3);]ifAction.java

    package com.zhangjie.struts2.action;
    import org.apache.struts2.config.Namespace;
    import org.apache.struts2.config.Result;
    import org.apache.struts2.config.Results;
    import com.opensymphony.xwork2.Action;
    @Namespace(value="/")
    @Results([email=value=%7B@Result(name=%22success%22,value=%22/ifTag.jsp]value={@Result(name="success",value="/ifTag.jsp[/email]")})
    public class ifAction {
    private String name;
    public String getName() {
      return name;
    }
    public void setName(String name) {
      this.name = name;
    }
    public String execute(){
      return Action.SUCCESS;
    }
    }
    2,append标签连接多个List
    append标签用于将多个List连成一个List,相当于Java中的list1.addAll(list2),例如:
    [color=#990066,strength=3);]appendTag.jsp
      <h3><font color="#0000FF"><struts:append/> 标签</font></h3>
      <struts:append id="myAppendList">
        <struts:param value="%{maleList}"></struts:param>  <!-- 追加maleList -->
        <struts:param value="%{femaleList}"></struts:param>  <!-- 追加femaleList -->
      </struts:append>
      <struts:iterator value="%{#myAppendList}"> <!-- 遍历  myAppendList -->
        <struts:property/><br/>  <!-- 输出里面的每一个值 -->
      </struts:iterator>
    [color=#990066,strength=3);]AppendAction.java
    @Results([email=value=%7B@Result(name=%22success%22,value=%22/appendTag.jsp]value={@Result(name="success",value="/appendTag.jsp[/email]")})
    public class AppendAction {
    private List<String> maleList = new ArrayList<String>(){
      {
       add("Machael");
       add("Scorfield");
      }
    };
    private List<String> femaleList = new ArrayList<String>(){
      {
       add("Janice");
       add("Marry");
      }
    };
    public String execute(){
      return Action.SUCCESS;
    }
    public List<String> getFemaleList() {
      return femaleList;
    }
    public void setFemaleList(List<String> femaleList) {
      this.femaleList = femaleList;
    }
    public List<String> getMaleList() {
      return maleList;
    }
    public void setMaleList(List<String> maleList) {
      this.maleList = maleList;
    }
    }
    3,generator标签将字符转化为List
    [color=#990066,strength=3);]generatorTag.jsp
      <h3><font color="#0000FF"><struts:generator/>标签</font></h3>
      <struts:generator val="%{'李宁,安踏,双星,阿达,耐克'}" separator=","><!-- 分割字符串 -->
        <struts:iterator>    <!-- 遍历List数据 -->
           <struts:property/>  <!-- 输出每一个值 -->
        </struts:iterator>
      </struts:generator>
    4,merge标签取集合的并集
    merge标签类似于append标签,能将两个List连接成一个List,他们的用法完全一致。不同的是,append标签先添加maleList的所有元素,后添加female的所有元素。而merge标签是先添加maleList的第一个元数,再添加femaleList的第一个元素;在添加maleList的第二个元素,。。。。
    [color=#990066,strength=3);]mergeTag.jsp
      <h3><font color="#0000FF"><struts:merge/>标签</font></h3>
       <struts:merge id="myMergeList">
          <struts:param value="%{maleList}"></struts:param>
          <struts:param value="%{femaleList}"></struts:param>
       </struts:merge>
       <struts:iterator value="%{#myMergeList}">
          <struts:property/>
       </struts:iterator>
    5,subset标签过滤集合元素
    subset标签用于筛选集合里元素。他使用一个Filter,将不合格的元素过滤掉,剩下原集合的一个子集:
    [color=#990066,strength=3);]subsetTag.jsp
        <h3><font color="#0000FF"><struts:subset/>标签</font></h3>
        <struts:subset source="maleList" decider="decider">  <!-- 筛选标签 -->
          <struts:iterator>           <!-- 遍历筛选后的结果 -->
             <struts:property/>  <br/><!-- 输出每个遍历的值 -->
          </struts:iterator>
        </struts:subset>
    注:maleList是Action中的集合属性,decider是Action中的Filter属性。decider必须实现SubsetIteratorFilter.Decider接口以及decide()方法。为简单一些,Action中使用了匿名内部类,代码如下:
    [color=#990066,strength=3);]SubsetAction.java
    @Results([email=value=%7B@Result(name=%22success%22,value=%22/subsetTag.jsp]value={@Result(name="success",value="/subsetTag.jsp[/email]")})
    public class SubsetAction {
    private List<String> maleList = new ArrayList<String>(){
      {
         add("Machael");
         add("Scorfield");
         add("Other");
      }
    };
    private SubsetIteratorFilter.Decider decider = new SubsetIteratorFilter.Decider(){ //匿名类
      public boolean decide(Object obj) throws Exception{   //覆盖过滤方法
          if(obj instanceof String){    //如果是String 类型
           if(obj.equals("Other"))  //如果是other
            return false;        //返回false,被过滤掉
           else
            return true;
          }
          return false;
      }
    };
    public String execute(){   //主方法
      return Action.SUCCESS;  //返回成功页面
    }
    public SubsetIteratorFilter.Decider getDecider() {
      return decider;
    }
    public void setDecider(SubsetIteratorFilter.Decider decider) {
      this.decider = decider;
    }
    public List<String> getMaleList() {
      return maleList;
    }
    public void setMaleList(List<String> maleList) {
      this.maleList = maleList;
    }
    }
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-5-20 09:11 , Processed in 0.421396 second(s), 48 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表