19_21.Struts2_通用标签

private List<Person> persons = new ArrayList<Person>();
    public List<Person> getPersons() {
        return persons;
    }
    public void setPersons(List<Person> persons) {
        this.persons = persons;
    }
    public String commontag(){
        this.setProductDesc("aa");
        this.setProductId(1001);
        this.setProductName("intel");
        this.setProductPrice(1000d);
        Person person5 = new Person("dd",41);
        Person person2 = new Person("aa",11);

        Person person4 = new Person("cc",31);

        Person person3 = new Person("bb",21);
        Person person6 = new Person("ee",51);
        //想要将对象压入值栈,则需要是对象本身的属性才行,并且要有getxxx setxxx方法
        //List<Person> persons = new ArrayList<Person>();
        persons.add(person2);
        persons.add(person3);
        persons.add(person4);
        persons.add(person5);
        ActionContext.getContext().getValueStack().push(persons);
        return "commontag";
    }

*property 标签

示例:
输出 Action 属性 customerId 的值:
输出 session 属性 userName 的值:

如果 value 属性没有给出, ValueStack 值栈栈顶对象的值被输出
在许多情况下, JSP EL 可以提供更简洁的语法


url 标签
这里写图片描述

<s:url value="/getProduct" var="url2">
<!-- 对于value值会自动的进行OGNL解析 -->
    <s:param name="productId" value="productId"></s:param>
</s:url>
${url2 }
<br><br>
<s:url value="/getProduct" var="url3">
<!-- 对于value值会自动的进行OGNL解析,若不希望解析,则用单引号再引起来 -->
    <s:param name="productId" value="'productId'"></s:param>
</s:url>
${url3 }
<br><br>
<s:url var="url4" action="testAction" namespace="/tag11" method="save">
</s:url>
${url4 }
<br><br>
<s:url var="url5" value="testurl" includeParams="all">
</s:url>
${url5 }
s:url:创建一个URL字符串 

/struts2-4/getProduct?productId=1003 

/struts2-4/getProduct?productId=1001 

/struts2-4/getProduct?productId=productId 

/struts2-4/tag11/testAction!save.do 

testurl?name=123123 

*param 标签
param 标签用来把一个参数传递给包含着它的那个标签

无论在给出 value 值时有没有使用 %{}, Struts 都会对它进行 ognl 求值
如果想传递一个 String 类型的字符串作为参数值, 必须把它用单引号括起来.
可以把 value 属性的值写在开始标签和结束标签之间. 利用这种方式来传递一个 EL 表达式的值


*if, else 和 elseif 标签
这三个标签用来进行条件测试, 它们的用途和用法类似于 if, else 和 elseif 关键字. 其中 if 和 elseif 必须有 test 属性

s:*if, else 和 elseif 标签.用来进行测试
<!-- 可以直接使用值栈中的值,使用OGNL表达式解析test -->
<br><br>
<s:if test="productPrice > 1000">
    i7
</s:if>
<s:elseif test="productPrice > 800">
    i5
</s:elseif>
<s:else>
    i3
</s:else>

iterator 标签
这里写图片描述

这里写图片描述

*iterator 标签:iterator 标签用来遍历一个数组, Collection 或一个 Map, 并把这个可遍历对象里的每一个元素依次压入和弹出 ValueStack 栈
在开始执行时, iterator 标签会先把 IteratorStatus 类的一个实例压入 ContextMap, 并在每次遍历循环时更新它. 可以将一个指向 IteratorStatus 对象的变量赋给 status 属性.

<%
    Person person2 = new Person("aa",11);
    Person person3 = new Person("bb",21);
    Person person4 = new Person("cc",31);
    Person person5 = new Person("dd",41);
    Person person6 = new Person("ee",51);
    List<Person> persons = new ArrayList<Person>();
    persons.add(person2);
    persons.add(person3);
    persons.add(person4);
    persons.add(person5);
    request.setAttribute("persons", persons);
%>
<br><br>
<s:iterator value="#request.persons" var="person" status="status">
    ${status.index} -- ${name } -- ${age }<br>
</s:iterator>
<br><br>
<s:iterator value="persons" >
    ${name }- ${age }<br>
</s:iterator>

sort 标签要有一个对比器实现Comparator
这里写图片描述

这里写图片描述

*sort 标签:
sort 标签用来对一个可遍历对象里的元素进行排序. 
<br><br>
<%
    PersonComparator pc = new PersonComparator();
    request.setAttribute("pc", pc);
%>
<s:sort comparator="#request.pc" source="persons" var="persons"></s:sort>
<s:iterator value="persons" >
    ${name }- ${age }<br>
</s:iterator>
public class PersonComparator implements Comparator<Person>{

    @Override
    public int compare(Person o1, Person o2) {
        // TODO Auto-generated method stub
        return o1.getName().compareTo(o2.getName());
    }


}

*date 标签
这里写图片描述

date:date 标签用来对 Date 对象进行排版
<%
    Date date = new Date();
    session.setAttribute("date", date);
%>
<br><br>
<s:date format="yyyy-MM-dd HH-mm-ss" name="#session.date" var="date2"></s:date>
    ${date2 }
<br><br>

a 标签将呈现为一个 HTML 连接. 这个标签可以接受 HTML 语言中的 a 元素所能接受的所有属性.

<br><br>
<s:iterator value="persons" >
    <s:a href="getPerson.action?name=%{name}">${name }</s:a><br>
</s:iterator>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值