`
ghyghoo8
  • 浏览: 190194 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

struts2 标签的使用之 s:if

阅读更多
struts2 的web 项目中为了方便的编写jsp,标签是最好的选择

1:struts2 标签库的定义在**-core-版本号.jar META-INF 路径下找到struts-tags.tld文件;使用该标签需要在web 项目里面导入标签库:
    A:在web.xml文件  (默认 可以省略)

   1. <taglib>
   2.     <taglib-uri>/struts-tags</taglib-uri>
   3.     <taglib-location>/WEB-INF/lib/*.jar</taglib-location>
   4. <taglib>

    B:在jsp 导入标签的dingyi

   1. <%@ taglib prefix="s" uri="/struts-tags"%>

注意uri要一直,上面定义的是默认写法

2:OGNL struts2 利用了内建的ognl表达式,它基于XWork,增加了对ValueStack的支持
,在jsp里面通过ognl访问属性,struts2会自动搜寻栈内的所有实体。直到找到位置。
如:#person.address.ip 等于 person.getAddress().getIp();翻译结果为条用get方法
或是jstl的${person.address.ip}

<s:if>用法
A:直接写表达式

   1. <s:set name='china' value='china'>
   2. <s:if test="${china=='china'}">show</s:if>
   3. result:  show
   4. <s:set name="count" value="99">
   5. <s:if test="${count>0}">bigger than 0</s:if>
   6. <s:else>not</s:else>
   7. result:  bigger than 0

B:在遍历里面使用判断:

   1. <s:iterator id="id" value="label">
   2.     <s:if test="%{#id.attrValueId!=0}">
   3.         <s:property value="#id.attrValue" />
   4.                 <s:property value="#id.countAll" />                 <s:property value="#id.countRequest" />
   5.     </s:if>
   6.     <s:else>
   7.         <s:property value="#id.attrValue" />
   8.     </s:else>
   9. </s:iterator>

label是一个List<Attribu>  Attribu 包含属性attrValueId和countAll
在s:iterator域内这是id的值是"id",使用ognl读取遍历对象的方法是 #id
test="%{#id.attrValueId!=0}" 看子对象的属性attrValueId是否为0
<s:property value="#id.attrValue" /> 打印子对象的attrValue属性

C:直接读取对象

   1. <s:if test="request.price==null||request.price<=0">
   2. </s:if>

读取对象request,判断price是否小于0;
request 可以是如何的javaBean,也可以是基本属性

D:直接读取对象的另一种写法

   1.  <s:if test="%{aTransactionSummaryBean!=null}">

E:多个条件的判断

   1. <s:if test='%{isShowAll=="Y"||isShowAll==null||isShowAll==""}'>
   2.     <li class="selected">
   3. </s:if>
   4. <s:else>
   5.     <li>else
   6. </s:else>

isShowAll 为Action 里面的字符串属性

F:直接拿Action里面的boolean 貌似不xing
Action里面

   1. private boolean choosed = true;
   2. public boolean isChoosed(){
   3.     return choosed;
   4. }
   5. <s:if test="choosed"></s:if>

发现这个判断无法正确运行,也许是ognl 是通过get方法来获取对象的,如果在action 里面有下面的方法;

   1. public String getChoosed(){
   2.     return "true";
   3. }

上面那个s:if可以正确执行
最后注意一点:ognl和jstl标签不能互相嵌套
分享到:
评论

相关推荐

    node-v5.11.0-x86.msi

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    41532698775097Facebook Lite_405.0.0.8.113_apkcombo.com.armeabi-v7a.apk

    41532698775097Facebook Lite_405.0.0.8.113_apkcombo.com.armeabi-v7a.apk

    2024-2030中国RDF制粒机市场现状研究分析与发展前景预测报告.docx

    2024-2030中国RDF制粒机市场现状研究分析与发展前景预测报告

    财务困境-RLPM模型.xlsx

    详细介绍及样例数据:https://blog.csdn.net/li514006030/article/details/138549562

    基于python实现的Socket服务器与传感器通讯手段实现的家庭能源管理系统

    【作品名称】:基于Socket作为服务器与传感器通讯手段实现的家庭能源管理系统 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。

    node-v9.10.0-linux-armv7l.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    信息素养大赛的模拟题目

    内容概要: 此资源为信息素养大赛的算法创意实践挑战赛的模拟题目,包含:选择题、填空题、编程题。内容完全为自己整合,请各位同学及家长放心使用。

    什么是TJA和ICA.pdf

    什么是TJA和ICA

    2024-2030中国POS射频识别系统市场现状研究分析与发展前景预测报告.docx

    2024-2030中国POS射频识别系统市场现状研究分析与发展前景预测报告

    PCI & PCIe图像采集卡专精特新“小巨人”企业最新调研报告.docx

    PCI & PCIe图像采集卡专精特新“小巨人”企业最新调研报告

    基础运维技能(下)md格式笔记

    基础运维技能(下)md格式笔记

    ISO 18115-3-2022 表面化学分析词汇第3部分:光学界面分析术语.pdf

    ISO 18115-3-2022 表面化学分析词汇第3部分:光学界面分析术语.pdf

    node-v17.2.0-headers.tar.gz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    WordPress原创插件:当日24小时发布文章标题变红.zip

    WordPress原创插件:当日24小时发布文章标题变红

    微博热搜数据可视化分析系统,技术框架python + flask web + mysql + pycharm

    微博热搜数据可视化分析系统 技术框架 python + flask web + mysql + pycharm 角色介绍 普通用户 qqq 123456 模块分析 登录注册 数据爬取 数据清洗 数据可视化模块 热门话题排行 热词榜单 话题热度趋势和分布 话题情感指数和趋势 词云 NLP情感分析 相关话题推送 分词主题数据提取 舆情分析 退出模块 数据库weibo_nlp_system 分析原理 我的最爱是动漫,你喜欢什么呢? 我 的 最爱 是 动漫 你 喜欢 什么 呢

    node-v8.5.0-linux-armv7l.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    node-v9.3.0-linux-armv7l.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    QQIP查询,IP指针文件,IP查询

    这是一个能够获取 IP 访问者信息的文件。当有用户访问时,它可以精准地获取到访问者的 IP 地址。该文件具有高效、准确的特点,能够为相关应用提供有力的数据支持。通过使用这个文件,我们可以更好地了解访问者的来源和分布情况,有助于进行数据分析和应用优化。将其上传至 CSDN,希望能与更多开发者分享交流,共同探索其在不同领域的应用价值,为互联网技术的发展贡献一份力量。需注意,在使用过程中要遵循相关法律法规,确保数据的合法使用和隐私保护。

    node-v9.1.0-darwin-x64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    基于 Amazon AWS EC2 部署 Ghost 博客内含源码以及说明书可以自己运行复现.zip

    基于 Amazon AWS EC2 部署 Ghost 博客内含源码以及说明书可以自己运行复现.zip

Global site tag (gtag.js) - Google Analytics