• Struts2入门---常用的OGNL标签的用法



    <%
    @page import="com.struts.valueStack.PersonComparator"%> <%@page import="java.util.ArrayList"%> <%@page import="java.util.List"%> <%@page import="com.struts.valueStack.Person"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="/struts-tags" prefix="s"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <s:debug></s:debug>     <br> s:property: 打印值栈中的属性值的 : 关于于对象栈, 打印值栈中对象的属性值 <br><br> <s:property value="productName"/> <br><br> 对于 Map 栈, 打印 request , session , application 的某个属性值 或 某个请求参数的值 <br><br> <s:property value="#session.date"/> <br><br> <s:property value="#parameters.name[0]"/> <br><br> s:url: 创建一个 URL 字符串的 <br><br> <s:url value="/testUrl" var="url"></s:url> ${url } <br><br> <s:url value="/getProduct" var="url"> <s:param name="productId" value="10002"></s:param> </s:url> ${url } <br><br> <s:url value="/getProduct" var="url"> <!-- 对于 value 值会自动的 进行 OGNL 解析 --> <s:param name="productId" value="productId"></s:param> </s:url> ${url } <br><br> <s:url value="/getProduct" var="url"> <!-- 对于 value 值会自动的 进行 OGNL 解析 , 若不需要自动进行 OGNL 解析 则用单引号引起来--> <s:param name="productId" value="'productId'"></s:param> </s:url> ${url } <br><br> <!-- 构造一个请求的 action 的地址 --> <s:url action="testAction" namespace="/zhoujing" method="save" var="url"></s:url> ${url } <br><br> <s:url value="/testUrl" var="url" includeParams="get"></s:url> ${url } <br><br> s:set: 向 page ,request, session ,application 域对象中加入一个属性值 <br><br> <s:set var="productName" value="productName" scope="page" /> productName:^${pageScope.productName } <br><br> s:push: 把一个对象在标签开始后压入到值栈中, 标签结束时, 弹出值栈. <% Person person = new Person(); person.setName("zhoujing"); person.setAge(21); request.setAttribute("person", person); %> <br><br> <s:push value="#request.person"> push标签中:${name } </s:push> push标签外:---^${name }--- <br><br> s:if ,s:else if ,s:else: <br><br> ${requestScope.person.age } <!-- 可以直接使用值栈中的属性 --> <s:if test="#request.person.age < 18"> 少年 </s:if> <s:elseif test="#request.person.age < 12"> 儿童 </s:elseif> <s:else> 成年 </s:else> <br><br> s: iterator: 遍历集合 的.把这个遍历对象里的每一个元素依次压入和弹出. <% List<Person> persons = new ArrayList<Person>(); persons.add(new Person("BB",15)); persons.add(new Person("AA",10)); persons.add(new Person("CC",20)); request.setAttribute("persons", persons); %> <br><br> <s:iterator value="#request.persons"> ${name } --${age }<br> </s:iterator> <br><br> s:sort 可以对集合中的元素进行排序 <br><br> <% PersonComparator pc = new PersonComparator(); request.setAttribute("comparator", pc); %> <s:sort comparator="#request.comparator" source="#request.persons" var="persons2"></s:sort> <s:iterator value="#attr.persons2"> ${name } -- ${age }<br> </s:iterator> <br><br> s: date 可以对date对象进行排版 <br><br> <s:date name="#session.date" format="yyyy-MM-dd hh:mm:ss" var="date2"/> date:${date2 } <br><br> s:a 就是一个HTML 连接. <br><br> <s:iterator value="#request.persons"> <!-- 可以使用%{} 把属性包装起来, 使其进行强制的 OGNL 解析 --> <s:a href="getPerson.action?name=%{name}">${name }</s:a> </s:iterator> <br><br> <br><br> </body> </html>

    最后打印出来的标签效果:


    s:property: 打印值栈中的属性值的 : 关于于对象栈, 打印值栈中对象的属性值

    周静

    对于 Map 栈, 打印 request , session , application 的某个属性值 或 某个请求参数的值

    17-7-27

    zhoujing

    s:url: 创建一个 URL 字符串的

    /Struts2-3/testUrl

    /Struts2-3/getProduct?productId=10002

    /Struts2-3/getProduct?productId=10001

    /Struts2-3/getProduct?productId=productId

    /Struts2-3/zhoujing/testAction!save.action

    /Struts2-3/testUrl?name=zhoujing

    s:set: 向 page ,request, session ,application 域对象中加入一个属性值

    productName:^周静

    s:push: 把一个对象在标签开始后压入到值栈中, 标签结束时, 弹出值栈.

    push标签中:zhoujing push标签外:---^---

    s:if ,s:else if ,s:else:  

    21 成年

    s: iterator: 遍历集合 的.把这个遍历对象里的每一个元素依次压入和弹出.

    BB --15
    AA --10
    CC --20


    s:sort 可以对集合中的元素进行排序

    AA -- 10
    BB -- 15
    CC -- 20


    s: date 可以对date对象进行排版

    date:2017-07-27 09:03:25

    s:a

    BB AA CC

    这里面还包括了 Product 和 Person 两个java类 和一个comparator 排序所用的类. 就不一一展示了..

    文章未经版主同意不可任意转载,如有需要请标明文章出处。
  • 相关阅读:
    AngularJS中写一个包裹HTML元素的directive
    AngularJS中实现Model缓存
    控制台获取AngularJS某个元素的Scope
    体验jQuery和AngularJS的不同点以及AngularJS的迷人之处
    AngularJS中$interval的用法
    AngularJS中处理多个promise
    AngularJS中获取数据源的几种方式
    AngularJS中ui-router全攻略
    AnguarJS中链式的一种更合理写法
    AngularJS转换请求内容
  • 原文地址:https://www.cnblogs.com/qihangzj/p/7246408.html
Copyright © 2020-2023  润新知