目录:

  1. 通用标签
  2. 不通用标签
  3. checkbox标签

一.通过标签

1.property 标签

property 标签用来输出一个值栈属性的值

  • default [String] 可选 默认:,如果value值为null或没有给定,将显示该属性值
  • escape [Boolean]

示例:
输出 Action 属性 customerId 的值: <s:property value="customerId"/>
输出 session 属性 userName 的值: <s:property value="#session.userName"/>

在许多情况下, JSP EL 可以提供更简洁的语法

2.url 标签

<!--  s:url:创建一个URL字符串-->
<br><br>
<s:url value="yiguang1" var="url1"><!--指定url包含的请求参数,250不可能是一个属性名,struts2直接把250作为属性值--><s:param name="yi" value="250"></s:param>
</s:url>
url1=${url1}<br><br>
<s:url value="yiguang2" var="url2"><!--对于value值会自动进行OGNL解析--><s:param name="yi2" value="productName"></s:param>
</s:url>
url2:${url2}<br><br>
<s:url value="yiguang3" var="url3"><!--对于value值会自动进行OGNL解析,不存在的value将不做处理 --><s:param name="yi3" value="abcd"></s:param>
</s:url>
url3:${url3}<br><br>
<s:url value="yiguang4" var="url4"><!--对于value值会自动进行OGNL解析,若不希望进行OGNL解析,则使用单引号引起来--><s:param name="yi4" value="'productId'"></s:param>
</s:url>
url4:${url4}<br><br>
<s:url action="action666" namespace="/helloWorld" method="save" var="url5"></s:url>
url5:${url5}<br><br>
<s:url action="czy_save" var="url3" includeParams="all"></s:url>
${url3 }

结果显示:

3.set 标签

向page、request、session、application 域对象中加入一个属性值。

    <s:set name="xuehao" value="541107030" scope="request"></s:set>set1:${requestScope.xuehao }<br><br><!-- 对于非数字的value值,会自动进行OGNL解析,调用值栈的属性--><s:set name="yiguang" value="productDesc" scope="request"></s:set>set2:${requestScope.yiguang }<br><br><!-- 对于OGNL解析后不存在的value将不做处理 --><s:set name="banji" value="likesheng" scope="request"></s:set>set3:${requestScope.banji }<br><br>

结果显示:

4:push 标签

push 标签将把一个对象压入 ValueStack 而不是压入 ContextMap.
push 标签在标签起始时把一个对象压入栈, 标签结束时将对象弹出栈.

    <%Person p = new Person("tom",24);request.setAttribute("person", p);%><s:push value="#request.person">姓名:${name }<br></s:push>姓名:${name }

5.if, else 和 elseif 标签

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

<!--可以直接使用值栈的属性-->
<s:if test="productPrice >1000">i7处理器
</s:if>
<s:elseif test="productPrice >800">i5处理器
</s:elseif>
<s:else>i3处理器
</s:else>

输入:


结果显示:

i5处理器

6.iterator 标签

iterator 标签用来遍历一个数组, Collection 或一个 Map, 并把这个可遍历对象里的每一个元素依次压入和弹出 ValueStack 栈

iterator 标签的 status 属性的属性值:

实例:

details.jsp:需要创建一个类添加name和age属性

    <%List<Person> persons = new ArrayList<Person>();persons.add(new Person("A",10));persons.add(new Person("B",20));persons.add(new Person("C",30));persons.add(new Person("D",40));persons.add(new Person("E",50));request.setAttribute("persons", persons);%><s:iterator value="#request.persons" status="s">name--${name }--index--${s.index}--age--${age }--${s.count }<br></s:iterator>

结果显示:

7.sort 标签

sort 标签用来对一个可遍历对象里的元素进行排序.

    <%List<Person> persons = new ArrayList<Person>();persons.add(new Person("A",10));persons.add(new Person("D",40));persons.add(new Person("B",20));persons.add(new Person("E",50));persons.add(new Person("C",30));request.setAttribute("persons", persons);%><s:iterator value="#request.persons" status="s">name--${name }--index--${s.index}--age--${age }--${s.count }<br></s:iterator><br><br><!-- s:sort 可以对集合中的元素进行排序 --><%PersonComparator pc = new PersonComparator();request.setAttribute("comparator", pc);%><s:sort comparator="#request.comparator" source="#request.persons" var="person_"><s:iterator value="#attr.person_">${name }--${age } <br></s:iterator></s:sort>
package com.qbz.struts2_02;import java.util.Comparator;public class PersonComparator implements Comparator<Person> {@Overridepublic int compare(Person o1, Person o2) {return o1.getName().compareTo(o2.getName());}}

8.date 标签

date 标签用来对 Date 对象进行排版

format 属性的值必须是 java.text.SimpleDateFormat 类里定义的日期/时间格式之一.

      <!-- date 标签 --><s:date name="#session.date" format="yyyy-MM-dd hh:mm:ss" var="data_"/>${data_ }

9.a 标签

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

     <s:iterator value="#request.persons"><!-- href中对name进行强制OGNL解析  %{} --><s:a href="getPerson.action?name=%{name}">${name }</s:a><br></s:iterator>

二.不通过标签

1.action 标签

action 标签用在页面上来执行一个 action.
action 标签还会把当前 Action 对象压入 ValueStack 值栈的 ContextMap 子栈.

2.bean 标签

bean 标签将创建一个 JavaBean, 并把它压入 ValueStack 值栈的 ContextMap 子栈. 这个标签的功能与 JSP 中的 useBean 动作元素很相似

3.include 标签

include 标签用来把一个 Servlet 或 JSP 页面的输出包含到当前页面里来.


4.append, merge 标签

append 标签用来合并可遍历对象

merge 标签用来交替合并可遍历对象


5.generator 标签

generator 标签用来生成一个可遍历对象并把它压入 ValueStack 栈.

generator 标签结束标记将弹出遍历对象

如果在一个 generator 标签里给出了 converter 属性, 新生成的可遍历对象里的每一个元素都会传递到该属性所指定的方法进行必要的转换.

6.subset 标签

subset 标签用来创建一个可遍历集合的子集.

subset 标签通过 decider 属性来创建一个可遍历集合的子集

三.checkbox标签

一、JSP中

①集合为list

<s:checkboxlist name="list" list="{'Java','.Net','RoR','PHP'}" value="{'Java','.Net'}" />
生成html
<input type="checkbox" name="list" value="Java" checked="checked" /><label>Java</label>
<input type="checkbox" name="list" value=".Net" checked="checked" /><label>.Net</label>
<input type="checkbox" name="list" value="RoR" /><label>RoR</label>
<input type="checkbox" name="list" value="PHP" /><label>PHP</label>

②集合为MAP

<s:checkboxlist name="map" list="#{1:'瑜珈用品',2:'户外用品',3:'球类',4:'自行车'}"
listKey="key" listValue="value" value="{1,2,3}" />

生成html
<input type="checkbox" name="map" value="1" checked="checked" /><label>瑜珈用品</label>
<input type="checkbox" name="map" value="2" checked="checked" /><label>户外用品</label>
<input type="checkbox" name="map" value="3" checked="checked" /><label>球类</label>
<input type="checkbox" name="map" value="4" /><label>自行车</label>

③集合里存放javabean(id和name为Person的属性)

<%
    Person person1 = new Person(1, "小明");
    Person person2 = new Person(2, "小红");
    List<Person> list = new ArrayList<Person>();
    list.add(person1);
    list.add(person2);
    request.setAttribute("persons", list);
    request.setAtttibute("pchecked",person1);
%>
<s:checkboxlist name="beans" list="#request.persons" 
listKey="id" listValue="name" value="#request.pchecked.id" />

生成html
<input type="checkbox" name="beans" value="1" checked="checked" /><label>小明</label>
<input type="checkbox" name="beans" value="2" /><label>小红</label>

二、Action中

可以定义集合或数组接收值,比如定义List<Integer>可以接收上面③传来的值。

原帖详细讲了radio和select的用法,地址:http://wenku.baidu.com/view/caae743610661ed9ad51f384.html

4..Struts2_标签相关推荐

  1. Go 知识点(18)— 条件编译(编译标签、文件后缀)

    1. 条件编译 Go 能根据所处环境选择对应的源码进行编译.让编译器只对满足条件的代码进行编译,将不满足条件的代码舍弃,这就叫做条件编译. 在 Go 中,也称之为 Build Constraints ...

  2. Git 常用操作(2)- 创建标签

    1. 列出标签 在 Git 中列出已有的标签是非常简单直观的.只需要输入 git tag: $ git tag v0.1 v1.3 2. 创建标签 Git 使用两种主要类型的标签:轻量标签(light ...

  3. Docker 入门系列(2)- Docker 镜像, 免 sudo 使用 docker 命令、获取查看、修改镜像标签、查找删除创建镜像、导入导出镜像

    1. 免 sudo 使用 docker 命令 如果还没有 docker group 就添加一个 sudo groupadd docker 将用户加入该 group 内 sudo gpasswd -a ...

  4. JSTL标签库学习笔记

    JSTL概述 apache的东西,依赖于EL 使用jstl需要导入jstl.jar包 标签库 core 核心标签库 fmt 格式化标签库 sql 数据库标签库,过时 xml xml标签库,过时 JST ...

  5. jquery过滤HTML标签方法

    //过滤HTML标签 function removeHTMLTag(str) {str = str.replace(/<\/?[^>]*>/g, ''); //去除HTML tags ...

  6. BCELoss BCEWithLogitsLoss 多标签损失函数

    BCELoss 在图片多标签分类时,如果3张图片分3类,会输出一个3*3的矩阵. 先用Sigmoid给这些值都搞到0~1之间: 假设Target是: emmm应该是我上面每次都保留4位小数,算到最后误 ...

  7. xgboost lightgbm catboost 多分类 多标签

    xgboost 与 lightgbm 官方均支持多分类任务,但不直接支持多标签分类任务,实现多标签任务的方法之一是结合sklearn 提供的 multiclass 子类,如OneVsRestClass ...

  8. G6实现标签拖动连线画流程图

    需求描述 列出所有的task标签,拖动task标签在一旁画流程图,打包task的任务名及id和任务的执行流程以json的格式发给后端. 技术栈 G6,vue,h5自带的draggable实现拖动.也稍 ...

  9. 语义分割改进:通过视频传播和标签松弛

    语义分割改进:通过视频传播和标签松弛 Improving Semantic Segmentation via Video Propagation and Label Relaxation 论文地址:h ...

最新文章

  1. 关于学习Python的一点学习总结(42->继承list)
  2. iOS系统网络抓包方法
  3. WeightNet torch
  4. linux ps1 目录颜色,Linux下PS1终端下的颜色设置
  5. java iterator 嵌套_Java中的集合嵌套
  6. 要闻君说:华为发布2018年年度报告:全球销售收入超千亿美元;微软”立誓“不过愚人节;大众与AWS一起做工业汽车云...
  7. PageAdmin建站系统模板制作教程1:Razor简介
  8. 机器学习——异常值检测
  9. Windows配置MinGW环境变量
  10. 数学中常见的曲面方程及形状
  11. Win10系统打开共享文件提示没有权限使用网络资源怎么处理?
  12. jenkins k8s trying and failing to pull image
  13. php重定向和伪静态,「PHP重定向与伪静态区别」- 海风纷飞Blog
  14. 室内地图导航shopcloud
  15. mt6739耳机通道配置外置功放
  16. 5-2本题要求对两个整数a和b,输出其中较大的数。
  17. mysql世界国家数据库_世界国家 的数据库sql
  18. [C++] 小游戏—三国杀
  19. 自定义插件解决MyBatis-Plus like查询遇_ % \等字符需转译问题(含分页查询)
  20. OPENCV】seamless clone 功能比较

热门文章

  1. LED显示屏二次开发接口的设计方案
  2. 推荐一个国外用Flex制作播放器的源码
  3. 【S10-NP难度和NP完全问题】
  4. mysql 查询分析工具下载_SQL分析工具下载-SQL查询工具(DB Solo)下载v5.2.5官方版-西西软件下载...
  5. 猎头推荐成功一个人竟然收年薪一半,也太赚了吧
  6. PPT里面添加备注以及更改备注字体大小
  7. mysql绿色版安装与卸载
  8. ad9850c语言编程,AD9850与单片机波形生成程序及设计
  9. 头插法、尾插法建立单链表
  10. Python:使用Kivy制作计算器?