Struts 2.x学习------------------非UI标签

本文详细介绍了Struts2框架中的非UI标签,包括日期格式化显示、文本输出及资源文件读取方法。此外还讲解了如何使用标签进行内容判断和迭代输出,以及属性传递的操作方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于Struts 2.x的学习记录:

十三、非UI标签
UI标签指的是与表单无关(表单在HTML里面就称为UI)的标签,下面看几个有意思的标签
1.格式化日期显示
如果要想格式化日期的显示则使用“<s:date>”标签完成
<h1>雇佣日期:<s:date name="emp.hiredate" format="yyyy-MM-dd HH:mm:ss"/></h1>
以上的标签是直接访问了在Action中的属性内容,如果说现在要是访问属性范围中的内容请使用“#request”作为标记
ServletActionContext.getRequest().setAttribute("birthday", new java.util.Date());
<h1>生日:<s:date name="#request.birthday" format="yyyy-MM-dd HH:mm:ss"/></h1>

2.文本输出,在一个项目里面一定会存在有资源文件爱你,例如:有了一个Messages.properties文件,那么这个文件的内容除了可以使用Action读取之外,也可以使用标签读取
<h1>资源文件内容:<s:i18n name="Messages">
          <s:text name="info.msg">
              <s:param>慢半拍</s:param>
              <s:param>白羊</s:param>
              <s:param>旧词</s:param>
              <s:param>梨花凉</s:param>
              <s:param>天生难猜</s:param>
          </s:text>
</s:i18n></h1>
大部分情况下,我们不需要如此操作,因为大部分内容是通过Action读取的,但是如果日后遇见有国际化程序的时候,请一定要这样读取

3.在整个页面之中,实际上最为重要的标签有两个:判断是否有内容,以及迭代输出
范例:生成一个list集合
private List<Dept> allDepts=new ArrayList<Dept>();
public List<Dept> getAllDepts(){
        return allDepts;
}
public String execute() throws Exception{
        for(int i=0;i<10;i++){
            Dept d=new Dept();
            d.setDeptno(i);
            d.setDname("部门名称--"+i);
            this.allDepts.add(d);
        }
        return "dept.show";
}
此时的程序之中,list集合是作为了DeptAction的一个属性,所以标签可以直接操作

范例:迭代输出
<s:if test="allDepts!=null">
          <ul>
              <s:iterator value="allDepts" var="dp">
                  <li>部门编号:<s:property value="deptno"/>,部门位置:<s:property value="dname"/></li>
              </s:iterator>
          </ul>
</s:if>
test属性的主要目的是为了判断是否满足条件,value表示Action的属性,var表示每次取出的对象
 <s:if test="allDepts!=null">
          <ul>
              <s:iterator value="allDepts" var="dp">
                  <li>部门编号:${dp.deptno},部门位置:${dp.dname}</li>
              </s:iterator>
          </ul>
</s:if>
如果说现在要进行属性传递操作,那么也必须加上“#”符
public String execute() throws Exception{
        List<Dept> allDepts=new ArrayList<Dept>();
        for(int i=0;i<10;i++){
            Dept d=new Dept();
            d.setDeptno(i);
            d.setDname("部门名称--"+i);
            allDepts.add(d);
        }
        ServletActionContext.getRequest().setAttribute("allDepts", allDepts);
        return "dept.show";
}
<s:if test="#request.allDepts!=null">
          <ul>
              <s:iterator value="#request.allDepts" var="dp">
                  <li>部门编号:${dp.deptno},部门位置:${dp.dname}</li>
              </s:iterator>
          </ul>
</s:if>
在所有的标签之中,判断和输出是我们最需要掌握的标签

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值