热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

深入解析Struts数据标签:s:property、s:a、s:debug、s:include与s:param的应用与优化

本文详细探讨了Struts框架中几种常用的数据标签,包括`s:property`、`s:a`、`s:debug`、`s:include`和`s:param`。这些标签在实际开发中的应用广泛,不仅用于数据展示和链接生成,还提供了调试和模块化功能。文章分析了每个标签的基本用法及其属性配置,并结合具体示例介绍了如何进行性能优化和最佳实践。通过这些内容,开发者可以更好地理解和利用这些标签,提高开发效率和代码质量。

标签

标签的作用是输出指定的值,通常输出的是 value 属性指定的值, 标签的属性及属性说明如下:

  • value: 可选属性,指定需要输出的属性值,如果没有指定该属性,则默认输出 ValueStack 栈顶的值。
  • id: 可选属性,指定该元素的标识。
  • default: 可选属性,如果要输出的属性值为 null,则显示 default属性的指定值。
  • escape: 可选属性,指定是否忽略 HTML 代码。默认值是 true,即忽略输出值中的 HTML 代码。

示例:
在项目的 WebContent 目录下创建一个名称为 propertyTags.jsp 的文件,编辑后如下所示:

<%&#64; page language&#61;"java" contentType&#61;"text/html; charset&#61;utf-8"pageEncoding&#61;"utf-8"%>
<%&#64;taglib prefix&#61;"s" uri&#61;"/struts-tags" %>

<html>
<head>
<meta http-equiv&#61;"Content-Type" content&#61;"text/html; charset&#61;utf-8">
<title>property标签title>
head>
<body>输出字符串&#xff1a;<s:property value&#61;"&#39;this is a string&#39;"/><br/>输出默认值&#xff1a;<s:property value&#61;"" default&#61;"default_value"/><br/>忽略HTML代码&#xff1a;<s:property value&#61;"&#39;

www.w3school.com.cn

&#39;" escape&#61;"true"/><br/>不忽略HTML代码&#xff1a;<s:property value&#61;"&#39;

www.w3school.com.cn

&#39;"
escape&#61;"false"/>
<br/>
body>
html>

在这里插入图片描述

标签

标签用于在当前页面中包含另一个 Web 资源&#xff08;如 HTML、JSP、Servlet 等&#xff09;。该标签有两个属性 id 和 value。其中 id 是可选属性&#xff0c;表示该标签的引用&#xff1b;value 是必填属性&#xff0c;用于指定被包含的 Web 资源文件。

示例&#xff1a;
在 struts2Demo04 项目的 WebContent 目录下创建一个名称为 includeTags.jsp 的页面和一个名称为 file.jsp 的页面&#xff0c;在 includeTags.jsp 页面中使用 标签包含 file.jsp 页面。其中被包含页面 file.jsp 的主要代码如下所示。

<%&#64; page language&#61;"java" contentType&#61;"text/html; charset&#61;utf-8"pageEncoding&#61;"utf-8"%>
<%&#64;taglib prefix&#61;"s" uri&#61;"/struts-tags" %>

<html>
<head>
<meta http-equiv&#61;"Content-Type" content&#61;"text/html; charset&#61;utf-8">
<title>property标签title>
head>
<body><h2>这是被包含页面includefile.jsph2><br/>传递的参数为&#xff1a;<%out.print(request.getParameter("username")); %>
body>
html>

包含页面 includeTags.jsp 的主要代码如下所示。

<%&#64; page language&#61;"java" contentType&#61;"text/html; charset&#61;UTF-8"pageEncoding&#61;"UTF-8"%>
<%&#64;taglib prefix&#61;"s" uri&#61;"/struts-tags"%>

<html>
<head>
<meta http-equiv&#61;"Content-Type" content&#61;"text/html; charset&#61;UTF-8">
<title>includeTagstitle>
head>
<body><h3>这是包含页面includeTags.jsph3><br/><s:include value&#61;"file.jsp"><s:param name&#61;"username" value&#61;"&#39;小韩&#39;"/>s:include>
body>
html>

标签主要用于为其他标签提供参数&#xff0c;通常要与其他标签一起使用。在上一部分使用 标签时&#xff0c;就使用了 标签给被包含的页面传递参数。 标签有两种用法&#xff0c;具体如下:

**一种用法是通过标签体指定参数值&#xff0c;用法如下所示&#xff1a; **

<s:param name&#61;"color">reds:param>

**另一种用法是使用 value 属性指定参数值&#xff0c;用法如下所示&#xff1a; **

<s:param name&#61;"color" value&#61;"&#39;red&#39;"/>

上述两种用法的功能一样&#xff0c;不同点在于使用 value 属性设置参数值时&#xff0c;需要添加单引号&#xff0c;而使用标签体设置参数值时&#xff0c;不需要添加单引号。

注意&#xff1a;在使用 value 属性指定参数时&#xff0c;如果不添加单引号&#xff0c;则表示该值为一个引用对象&#xff0c;如果该对象不存在&#xff0c;则为其属性赋值为 null。


推荐阅读
  • publicclassBindActionextendsActionSupport{privateStringproString;privateStringcitString; ... [详细]
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
  • 问题场景用Java进行web开发过程当中,当遇到很多很多个字段的实体时,最苦恼的莫过于编辑字段的查看和修改界面,发现2个页面存在很多重复信息,能不能写一遍?有没有轮子用都不如自己造。解决方式笔者根据自 ... [详细]
  • Beetl是一款先进的Java模板引擎,以其丰富的功能、直观的语法、卓越的性能和易于维护的特点著称。它不仅适用于高响应需求的大型网站,也适合功能复杂的CMS管理系统,提供了一种全新的模板开发体验。 ... [详细]
  • 一、Advice执行顺序二、Advice在同一个Aspect中三、Advice在不同的Aspect中一、Advice执行顺序如果多个Advice和同一个JointPoint连接& ... [详细]
  • 本文介绍了如何通过C#语言调用动态链接库(DLL)中的函数来实现IC卡的基本操作,包括初始化设备、设置密码模式、获取设备状态等,并详细展示了将TextBox中的数据写入IC卡的具体实现方法。 ... [详细]
  • spring boot使用jetty无法启动 ... [详细]
  • 数据类型--char一、char1.1char占用2个字节char取值范围:【0~65535】char采用unicode编码方式char类型的字面量用单引号括起来char可以存储一 ... [详细]
  • 本文探讨了如何通过Service Locator模式来简化和优化在B/S架构中的服务命名访问,特别是对于需要频繁访问的服务,如JNDI和XMLNS。该模式通过缓存机制减少了重复查找的成本,并提供了对多种服务的统一访问接口。 ... [详细]
  • 本文将从基础概念入手,详细探讨SpringMVC框架中DispatcherServlet如何通过HandlerMapping进行请求分发,以及其背后的源码实现细节。 ... [详细]
  • importjava.io.*;importjava.util.*;publicclass五子棋游戏{staticintm1;staticintn1;staticfinalintS ... [详细]
  • 本文详细介绍了如何在循环双链表的指定位置插入新元素的方法,包括必要的步骤和代码示例。 ... [详细]
  • 使用QT构建基础串口辅助工具
    本文详细介绍了如何利用QT框架创建一个简易的串口助手应用程序,包括项目的建立、界面设计与编程实现、运行测试以及最终的应用程序打包。 ... [详细]
  • 本文探讨了如何高效地计算数组中和为2的幂的偶对数量,提供了从基础到优化的方法。 ... [详细]
  • 题目编号:2049 [SDOI2008]Cave Exploration。题目描述了一种动态图操作场景,涉及三种基本操作:断开两个节点间的连接(destroy(a,b))、建立两个节点间的连接(connect(a,b))以及查询两节点是否连通(query(a,b))。所有操作均确保图中无环存在。 ... [详细]
author-avatar
叶晴琼
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有