自定义标签的整理(新手教程)
OneNote标签页布局整理与分类

OneNote标签页布局整理与分类作为一个多功能的电子笔记应用程序,OneNote可以帮助用户方便地记录和整理各种信息。
其中,标签页是OneNote的一个重要组成部分,它可以帮助用户在众多笔记中快速找到所需内容。
本文将介绍OneNote标签页的布局整理与分类方法,帮助用户更有效地管理笔记。
一、标签页布局整理方法1. 分类命名:在开始使用OneNote时,就应该养成良好的分类习惯。
为每个标签页设置一个清晰明确的名称,以反映该页所包含的内容。
例如,如果你的笔记主题是项目管理,可以创建一个名为“项目计划”的标签页。
2. 使用子标签页:为了更好地组织笔记内容,可以使用子标签页来进一步分类。
在OneNote中,你可以右键点击一个标签页,选择“新建子页面”,然后为子页面设置一个相关的名称。
例如,在“项目计划”标签页下,可以创建子标签页如“里程碑”,“进度跟踪”等等。
3. 利用颜色标记:OneNote提供了丰富的颜色选项,可以帮助用户更直观地识别和区分不同的标签页。
点击标签页右上角的小箭头,选择“更改颜色”,然后选择一个适合的颜色。
例如,可以选择红色代表重要的标签页,蓝色代表个人笔记等等。
二、标签页分类方法1. 按主题分类:根据你的学习、工作或兴趣爱好的主题,将相关的标签页归为一类。
例如,在学习领域,可以创建“数学”、“科学”、“历史”等分类;在工作领域,可以创建“销售报告”、“会议记录”、“市场调研”等分类。
2. 按时间分类:按照时间顺序将标签页分类,可以帮助你快速回顾之前的笔记。
例如,可以创建“2021年度总结”、“2021年7月”等分类,以便将同一时间段的笔记整理在一起。
3. 按重要性分类:根据笔记的重要程度将标签页分类,可以帮助你更快地找到最重要的信息。
例如,可以创建“重要文档”、“待办事项”等分类,将需要重点关注的内容放在一起。
三、标签页整理与分类的好处1. 提高效率:通过使用合适的布局整理与分类方法,可以让你更轻松地找到所需的笔记,提高工作和学习的效率。
如何使用WORD文档中的标签和书签功能

如何使用WORD文档中的标签和书签功能Word是一款功能强大的文字处理软件,在处理大量文字和文档时,使用标签和书签功能可以帮助我们更高效地管理和导航文档。
本文将介绍如何使用Word文档中的标签和书签功能。
一、什么是标签和书签标签和书签是Word中的两个重要功能,它们可以帮助我们在文档中快速定位和导航。
标签是一种用于在文档中创建、命名和定位特定位置的功能。
通过给文档中的某个位置设置标签,我们可以在需要时快速跳转到该位置。
书签则是用于在文档中创建、命名和定位特定位置的功能,但与标签不同的是,书签可以跨页存放。
二、如何设置标签和书签1. 设置标签:在Word文档中,通过以下步骤设置标签:1) 首先,将光标移动到标签所在的位置。
2) 然后,在Word菜单栏中选择“插入”选项,在下拉菜单中选择“标签”。
3) 在弹出的对话框中,输入标签的名称,并点击“添加”或“确定”按钮完成标签的设置。
2. 设置书签:在Word文档中,通过以下步骤设置书签:1) 首先,将光标移动到书签所在的位置。
2) 然后,在Word菜单栏中选择“插入”选项,在下拉菜单中选择“书签”。
3) 在弹出的对话框中,输入书签的名称,并点击“添加”或“确定”按钮完成书签的设置。
三、如何使用标签和书签1. 使用标签:通过设置标签,我们可以在需要时快速定位到特定的位置。
在Word文档中,使用标签的方法如下:1) 首先,点击Word菜单栏中的“查看”选项,在下拉菜单中选择“导航窗格”。
2) 在导航窗格中,选择“标签”,然后在“标签”列表中选择需要跳转的标签。
3) 单击选中的标签,即可快速跳转到标签所在的位置。
2. 使用书签:设置书签后,我们可以通过书签功能来快速导航到文档中的特定位置。
下面是使用书签的方法:1) 首先,点击Word菜单栏中的“查看”选项,在下拉菜单中选择“导航窗格”。
2) 在导航窗格中,选择“书签”,然后在“书签”列表中选择需要跳转的书签。
设置标签怎么操作方法

设置标签怎么操作方法
设置标签的操作方法可以有多种途径,以下是常见的几种方式:
1. 在文件管理器中:选中需要设置标签的文件,右键点击文件,选择“属性”或“标记”,在弹出的对话框中选择或输入标签,点击确认保存。
2. 在应用程序中:有些应用程序(如笔记应用、任务管理应用等)可以自带标签功能,可以在应用程序的界面中找到设置标签的选项,一般位于条目或文件的相关操作菜单中,通过点击对应位置的按钮或菜单项进行设置。
3. 使用媒体播放器:有些媒体播放器(如音乐、视频播放器)支持为媒体文件设置标签,可以在播放器的界面中找到设置标签的选项,一般位于文件的右键菜单或播放器的设置中,通过点击对应位置的按钮或菜单项进行设置。
4. 使用标签管理工具:有些标签管理工具(如Evernote、Bear等)专门用于管理标签,可以在工具的界面中创建、删除、编辑标签,将标签应用于相应的文件或条目。
需要根据具体情况选择适合的方法来设置标签,不同的操作系统、应用程序或工具可能会有一些差异,但基本步骤通常是: 找到文件、条目等要设置标签的对象,选择或输入标签,保存设置。
如何设置电脑桌面标

如何设置电脑桌面标电脑桌面标签的设置方式现代人使用电脑的时间越来越长,一个整洁美观的桌面对于提高工作效率和保护视力都非常重要。
而设置电脑桌面标签是其中一个关键步骤。
本文将为大家介绍如何设置电脑桌面标签,提供几种常见的设置方式。
一、桌面整理首先,我们需要保持桌面的整洁。
将一些不常用的桌面图标移动到其他位置,或将其删除。
只保留最常用的应用程序和文件的图标,这样可以减少桌面的混乱,方便我们快速找到需要的文件或程序。
二、图标分类在设置桌面标签之前,我们可以根据不同的类别对图标进行分类。
比如可以将办公软件放在一组,娱乐软件放在另一组,常用文件放在另一组等等。
这样分类后的图标更加有序,不仅美观,而且容易找到需要的应用程序或文件。
三、创建文件夹一个非常有效的方法是使用文件夹来整理桌面上的图标。
我们可以为每个类别创建一个文件夹,并将相关的图标放入其中。
例如,可以创建一个名为“办公软件”的文件夹,将所有办公软件的图标放入其中。
同时,可以在文件夹的名称前面添加一些特殊符号或数字,以代表不同的优先级。
这样设置后,我们可以通过点击文件夹来展开或关闭相关图标,这不仅能使桌面更加整洁,而且大幅提升了使用电脑的效率。
四、利用快捷方式快捷方式是操作系统提供的一个非常有用的工具,我们可以利用它来设置电脑桌面标签。
比如,我们可以将常用文件或文件夹的快捷方式放置在桌面上。
在桌面上右键单击,选择“新建快捷方式”,然后选择需要的文件或文件夹的路径,最后点击“确定”即可。
这样,我们就能够通过桌面上的快捷方式来快速访问需要的文件或文件夹,而无需每次都经过文件夹的层层点击。
总结起来,设置电脑桌面标签可以有效提高工作效率,保护视力,同时让我们的桌面更加整洁美观。
通过整理桌面、分类图标、创建文件夹和利用快捷方式等方法,我们可以根据个人需求来设置电脑桌面标签,从而更好地利用电脑资源,提高工作和生活的便利性。
希望本文的介绍能够对大家有所帮助,让大家能够更好地设置自己电脑桌面标签,提高工作和生活的效率。
标签体系搭建模板-概述说明以及解释

标签体系搭建模板-范文模板及概述示例1:标题:构建标签体系的模板搭建导言:标签体系是一个有机的分类系统,帮助我们更好地组织和归类信息。
构建一个全面且具有逻辑性的标签体系是网站、应用程序或其他信息管理系统的关键。
本文将介绍如何搭建一个有效的标签体系模板,以便准确地标记和分类各种内容。
一、确定需求1. 定义目标:在构建标签体系之前,明确你的目标和需求。
标签体系应该为用户提供方便的导航和检索功能。
2. 考虑内容类型:确定你要管理的内容类型,如文章、视频、图片等。
这有助于确定需要多少个标签和它们的层级关系。
3. 分析用户需求:了解用户的兴趣和需求,以便为他们提供相关的标签选择。
二、设计标签结构1. 标签分类:根据内容的共性和相关性,将标签进行分类。
可以使用主题、类型、地点、时间等方面进行分类。
2. 标签层级:根据内容的复杂程度和关联性,设置标签的层级结构。
例如,可以将标签分为主标签和子标签,从而创建层次化的分类。
三、选择合适的标签1. 标签词汇:确定标签词汇的准确性和简洁性。
避免使用模糊和重复的词汇,以防混淆用户。
2. 标签数量:根据内容数量和多样性,确定需要多少个标签。
除了常用的标签,还可以添加一些特殊的标签来准确描述某些内容。
3. 标签关联性:确保每个标签与相关内容相关联。
避免过度使用标签或将不相关的内容放在同一个标签下。
四、标签管理1. 标签更新:定期检查和更新标签体系,以保持其准确性和完整性。
删除不再使用的标签,并根据新的需求添加新的标签。
2. 标签指南:为用户提供标签使用指南,以帮助他们准确选择和应用标签。
这有助于提高标签的一致性和有效性。
结论:构建一个有用的标签体系模板是管理信息和提供用户体验的重要组成部分。
通过明确需求、设计合理的标签结构、选择合适的标签及及时管理,我们可以构建一个高效和有组织的标签体系,提供更好的搜索和导航功能,提升用户体验。
示例2:标题:标签体系搭建模板:优化文章分类与搜索体验引言:在建立一个完善的内容管理系统或一个规范的博客网站时,标签体系的搭建是非常重要的一步。
Excel表格学习教程(目前发现的最全面最实用的文章)

Excel表格学习教程(精心整理)本人最近需要用的excel,所以就查到了一些觉得比较好的文章,稍加整理。
整理的过程中才发现excel竟是如此强大,以前知道、用到的竟真的只是皮毛,可以说认真学会了这款办公软件,对你的帮助真的很大,绝对能让你的工作事半功倍!特记之!———题记本人共收集了网上广为流传的excel18个学习资料,去伪存真,整理在一起,希望看到的朋友批评指正!另外根据特殊人的需求编辑了另一篇比较高级的《Excel表格的35招必学秘技》放在本文最后,有兴趣研究excel的可以看看。
也许你已经在Excel中完成过上百张财务报表,也许你已利用Excel函数实现过上千次的复杂运算,也许你认为Excel也不过如此,甚至了无新意。
但我们平日里无数次重复的得心应手的使用方法只不过是Excel全部技巧的百分之一。
本专题从Excel中的一些鲜为人知的技巧入手,领略一下关于Excel的别样风情。
目录一、基本方法1. 快速选中全部工作表2. 快速启动EXCEL3. 快速删除选定区域数据4. 给单元格重新命名75. 在EXCEL中选择整个单元格范围6. 快速移动/复制单元格7. 快速修改单元格式次序8. 彻底清除单元格内容9. 选择单元格10. 为工作表命名11. 一次性打开多个工作簿12. 快速切换工作簿13. 选定超级链接文本(微软OFFICE技巧大赛获奖作品)14. 快速查找15. 修改默认文件保存路径16. 指定打开的文件夹17. 在多个EXCEL工作簿间快速切换18. 快速获取帮助19. 创建帮助文件的快捷方式20. 双击单元格某边移动选定单元格21. 双击单元格某边选取单元格区域22. 快速选定不连续单元格23. 根据条件选择单元格24. 复制或移动单元格25. 完全删除EXCEL中的单元格26. 快速删除空行27. 回车键的粘贴功能28. 快速关闭多个文件29. 选定多个工作表30. 对多个工作表快速编辑31. 移动和复制工作表32. 工作表的删除33. 快速选择单元格34. 快速选定EXCEL区域(微软OFFICE技巧大赛获奖作品)35. 备份工件簿36. 自动打开工作簿37. 快速浏览长工作簿38. 快速删除工作表中的空行39. 绘制斜线表头40. 绘制斜线单元格41. 每次选定同一单元格42. 快速查找工作簿43. 禁止复制隐藏行或列中的数据44. 制作个性单元格二、数据输入和编辑技巧1. 在一个单元格内输入多个值2. 增加工作簿的页数3. 奇特的F4键4. 将格式化文本导入EXCEL5. 快速换行6. 巧变文本为数字7. 在单元格中输入0值8. 将数字设为文本格式9. 快速进行单元格之间的切换(微软OFFICE技巧大赛获奖作品)10. 在同一单元格内连续输入多个测试值. 输入数字、文字、日期或时间12. 快速输入欧元符号13. 将单元格区域从公式转换成数值14. 快速输入有序文本15. 输入有规律数字16. 巧妙输入常用数据17. 快速输入特殊符号18. 快速输入相同文本19. 快速给数字加上单位20. 巧妙输入位数较多的数字21. 将WPS/WORD表格转换为EXCEL工作表22. 取消单元格链接23. 快速输入拼音24. 插入“√”25. 按小数点对齐26. 对不同类型的单元格定义不同的输入法27. 在EXCEL中快速插入WORD表格28. 设置单元格字体29. 在一个单元格中显示多行文字30. 将网页上的数据引入到EXCEL表格31. 取消超级链接32. 编辑单元格内容33. 设置单元格边框34. 设置单元格文本对齐方式35. 输入公式36. 输入人名时使用“分散对齐”(微软OFFICE技巧大赛获奖作品)37. 隐藏单元格中的所有值(微软OFFICE技巧大赛获奖作品)38. 恢复隐藏列39. 快速隐藏/显示选中单元格所在行和列(微软OFFICE技巧大赛获奖作品)2440. 彻底隐藏单元格41. 用下拉列表快速输入数据42. 快速输入自定义短语43. 设置单元格背景色44. 快速在多个单元格中输入相同公式45. 同时在多个单元格中输入相同内容46. 快速输入日期和时间47. 将复制的单元格安全地插入到现有单元格之间48. 在EXCEL中不丢掉列标题的显示49. 查看与日期等效的序列数的值50. 快速复制单元格内容51. 使用自定义序列排序(微软OFFICE技巧大赛获奖作品)52. 快速格式化EXCEL单元格53. 固定显示某列54. 在EXCEL中快速编辑单元格55. 使用自动填充快速复制公式和格式56. 为单元格添加批注57. 数据自动输入58. 在EXCEL中快速计算一个人的年龄59. 快速修改单元格次序60. 将网页上的数据引入到EXCEL表格中三、图形和图表编辑技巧1. 在网上发布EXCEL生成的图形2. 创建图表连接符3. 将EXCEL单元格转换成图片形式插入到WORD中4. 将WORD内容以图片形式插入到EXCEL表格中5. 将WORD中的内容作为图片链接插入EXCEL表格中6. 在独立的窗口中处理内嵌式图表7. 在图表中显示隐藏数据8. 在图表中增加文本框9. 建立文本与图表文本框的链接10. 给图表增加新数据系列. 快速修改图表元素的格式12. 创建复合图表13. 对度量不同的数据系列使用不同坐标轴14. 将自己满意的图表设置为自定义图表类型15. 复制自定义图表类型16. 旋转三维图表17. 拖动图表数据点改变工作表中的数值18. 把图片合并进你的图表19. 用图形美化工作表20. 让文本框与工作表网格线合二为一21. 快速创建默认图表22. 快速创建内嵌式图表23. 改变默认图表类型24. 快速转换内嵌式图表与新工作表图表25. 利用图表工具栏快速设置图表26. 快速选取图表元素27. 通过一次按键创建一个EXCEL图表28. 绘制平直直线四、函数和公式编辑技巧1. 巧用IF函数清除EXCEL工作表中的02. 批量求和3. 对相邻单元格的数据求和4. 对不相邻单元格的数据求和5. 利用公式来设置加权平均6. 自动求和7. 用记事本编辑公式8. 防止编辑栏显示公式9. 解决SUM函数参数中的数量限制10. 在绝对与相对单元引用之间切换. 快速查看所有工作表公式12. 实现条件显示五、数据分析和管理技巧1. 管理加载宏2. 在工作表之间使用超级连接3. 快速链接网上的数据4. 跨表操作数据5. 查看EXCEL中相距较远的两列数据6. 如何消除缩位后的计算误差(微软OFFICE技巧大赛获奖作品)7. 利用选择性粘贴命令完成一些特殊的计算8. WEB查询9. 在EXCEL中进行快速计算10. 自动筛选前10个. 同时进行多个单元格的运算(微软OFFICE技巧大赛获奖作品)12. 让EXCEL出现错误数据提示13. 用“超级连接”快速跳转到其它文件六、设置技巧1. 定制菜单命令2. 设置菜单分隔线3. 备份自定义工具栏4. 共享自定义工具栏5. 使用单文档界面快速切换工作簿6. 自定义工具栏按钮一、基本方法1. 快速选中全部工作表右键单击工作窗口下面的工作表标签,在弹出的菜单中选择“选定全部工作表”命令即可()。
visualstudiocode教程vscode的基础使用和自定义设置方法

visualstudiocode教程vscode的基础使⽤和⾃定义设置⽅法推荐了⼏个⾃认为⽐较好的要求配置项⽬⽐较低的VS code扩展插件:Html Snippets——html代码提⽰easyless——css编程/⽣成VS color Picker——颜⾊选择器live HTML Previewer——html⽂件运⾏预览SVG Viewer———SVG运⾏预览还有就是⽤户设置的配置⽅法和⽤户代码⽚段的编写。
***提⽰***经验⾥的图⽚都是GIF动图,⼤家要多次点击图⽚才能看到具体操作。
1.1 认识视图界⾯和⼤多编辑器⼀样,该有的基本都有。
如图:1.2 ⽂件夹和⽂件的打开⽂件——>打开⽂件夹/打开⽂件1.3 新建⽂件/⽂件夹新建⽂件:a. ⽂件——>新建⽂件;b. 按Ctrl+n;c. 点⽂件夹名后⾯的+号图标。
新建⽂件夹:点⽂件夹名后⾯的+号图标。
1.4 拆分编辑器(分列)快加键:Ctrl+\点击拆分编辑器图标(右上⾓)进⾏拆分编辑器。
拆分完毕之后,可以通过⿏标点击拖动⽂件到相应的列。
多列同时浏览免去多⽂件来回切换。
1.5 集成终端终端对开发者来说不可或缺,Visual Studio code ⾃然也⾃带终端视窗。
可按快捷键Ctrl+`快速调出终端,也可以查看——>集成终端调出。
需要注意的是:如果当前的⽂件夹的路径名称包含中⽂,会出现终端打开失败(待验证)。
1.6 安装/卸载扩展(插件)a. 进⼊扩展视图界⾯安装/卸载a1.快捷键:Ctrl+shift+x;a2.查看——>扩展;a3.点左侧边框的扩展图标按钮进⼊。
在顶部搜索框输⼊你需要的扩展插件,找到之后在扩展插件后⾯的选项中点击【安装】即可,需要卸载扩展只需要点【卸载】即可。
扩展下载安装完毕之后需要点击【启⽤】才⽣效,有些扩展需要重启编辑器才⽣效。
b. 如何选择扩展(插件)呢?其实也不难,扩展的名称⼀般都暴露了它的功能,基本如下:1.带snippets ⼀般是代码提⽰类扩展;2.带viewer ⼀般是代码运⾏预览类扩展;3.带support ⼀般是代码语⾔⽀持;4.带document ⼀般是参考⽂档类扩展;5.带Formatt ⼀般是代码格式化整理扩展;当然有的snippets 也⾃带support功能,并不是以上⾯的关键词作为唯⼀标准。
在html中创建自定义标签

在html中创建⾃定义标签创建并使⽤⾃定义标签Web Components 标准⾮常重要的⼀个特性是,它使开发者能够将HTML页⾯的功能封装为 custom elements(⾃定义标签),本篇介绍使⽤ CustomElementRegistry 来管理我们的⾃定义标签1. 创建⾃定义标签<script>class PopUpInfo extends HTMLElement {constructor () {super();// 在此定义⾃定义标签我顶⼀个icon和text并列的// Create a shadow rootlet shadow = this.attachShadow({mode: 'open'});// 创建我们需要的标签let wrapper = document.createElement('div');let iconBox = document.createElement('div');let textBox = document.createElement('div');// 为标签添加样式wrapper.setAttribute('class','wapper');iconBox.setAttribute('class','icon');textBox.setAttribute('class','text');let text = this.getAttribute('text'); // 获取标签⾥⾯传递的值textBox.textContent = text;let imgUrl;if(this.hasAttribute('img')) {imgUrl = this.getAttribute('img');} else {imgUrl = 'default.png'; // 设置⼀个默认图⽚}var img = document.createElement('img');img.src = imgUrl;iconBox.appendChild(img);// 书写样式var style = document.createElement('style');let lStyleStr = '.wrapper { display: flex; justify-content: center; align-items: center; width: 100%; height: 50px;}'lStyleStr += '.icon {margin-right: 10px; width: 50px; height: 50px;}'lStyleStr += '.icon img { width: 100%; height: 100%;}'lStyleStr += '.text { flex: 1; font-size: 14px; color: #333; line-height: 50px;}'style.textContent = lStyleStr;// 将样式和dom元素挂载到页⾯shadow.appendChild(style);shadow.appendChild(wrapper);wrapper.appendChild(icon);wrapper.appendChild(info);}}</script>2. 注册⾃定义标签<script>customElements.define('popup-info', PopUpInfo);</script>3. 使⽤⾃定义标签<body><popup-info img="you_picture.jpg" text="你的⽂字"></popup-info></body>。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在J2EE项目中,JSP页面常常通过在静态页面模板中嵌入scriptlets来插入动态的内容。
然而,随着复杂程序的增加,JSP页面也变得难于管理。
虽然用这种方法开发小形项目唾手可得,但是scriptlets仍然要面对下面的不利情况:Scriptlet难于阅读和修改。
带有Scriptlets的JSP 页面混合了两种语言,这使得阅读和维护变得很困难。
Scriptlets鼓励了将数据表现和逻辑处理的混合。
JSP 页面主要功能是数据表现而不是逻辑处理。
逻辑处理属于Java类的工作,他们应该由程序员维护并能够重用。
Scriptlets不能够被重用。
当scriptlets被重用时,常常是鼓励拷贝-粘贴来达到重用的效果,这是一种危险的维护方法。
每一次你拷贝-粘贴scriptlets时,将有更多行多余的代码需要维护。
Scriptlets的参数很难进行确定传递. 无论如何,绝大数人简单的拷贝,粘贴、编辑或者类似的增加,使得大部份的多余的代码需要更多的维护。
与其创建充满了scriptlets的巨大的JSP页面,不如考虑使用用户自定义标签。
用户自定义标签允许你创建、在JSP中使用你自己定义的类HTML标签。
每当JSP引擎遇到用户自定义标签时,就会自动查找标签处理类,并自动调用他。
页面中的自定义标签将会被票签处理类的输出所代替。
这就使得JSP页面不用直接在页面写Java代码,就可以指定生成动态的内容的。
用户自定义标签为你的网页设计提供了N种好处:他提高了页面代码的可读性。
页面设计人员而不是程序员,能够使用很比使用Scriptlets更容易的使用标签。
维护代码的程序员也只需个性标签库面不是JSP页面,这样他就不要再冒着破坏页面美观的风险。
在使用标签的每一处,增强或者固定的标签改变了标签了的表现。
标签比Scriptlets更容易确定参数,因为他会被作为一种属性或者在标签体内被传达。
最后,标签比Scriptlets高度的可重用性,因为你可以创建共享的、可重用的自定义标签库。
JSTL提供的就是这种标准的自定义标签集。
让我们通过看一个简单的JSP页面例子,来看看如何使用自定义标签。
下面这个页面使用scriptlet来得到数据: <%@ page import="java.text.SimpleDateFormat" %><%@ page import="java.util.Date" %><HTML><HEAD><TITLE>Sample JSP</TITLE></HEAD><BODY><H3>The date and time at the server are:<%String sformat = "EEEE, d MMMM yyyy 'at' kk:mm:ss z";SimpleDateFormat format = new SimpleDateFormat(sformat);Date date = new Date();String sdate = format.format(date);out.print(sdate);%></H3></BODY></HTML>这个页面非常的简单直接,尽管这个简单的函数看上去好像有许多东东。
如果你想要在每一个页面上显示日期,那么你只能拷贝粘贴这段代码到项目中的每一个页面。
如果你这么做,那么你要维护的不仅仅是这段代码的原始拷贝,而是你粘贴的每一个拷贝。
如果这段代码出现在多个页面,那么改变一下时间格式将会占用你的很多时间。
下面这段是一个非常清洁的JSP页面。
在这里,Java 代码被从scriptlet中移出放到了自定义标签中:<%@ taglib uri="/WEB-INF/taglib.tld" prefix="mytags" %> <HTML><HEAD><TITLE>Sample JSP using a custom tag</TITLE></HEAD> <BODY><H3>The date and time at the server are: <mytags:date/></H3></BODY></HTML>在这个例子中,<@% taglib %>用来指出自定义标签描述符文件路径(标签库中的描述符或者TLD文件),并且为这个标签名定义一个名字空间(“mytags”,可是你喜欢的任何字符)。
JSP引擎认可<mytags:date/>作为一个用户定义标签的符号,他会调用这个标签的标签处理器,并用处理结果替换标签和内容。
创建一个用户定义标签处理器创建一个用户定义标签处理器需要比定scriptlet多一定量的工作,因为这一个Java类,并且你不得不为他写一个TLD格式(在下一节介绍)的描述符文件。
下面这个类DataTag实现了一个标签处理器:public class DateTag extends TagSupport{protected PageContext _pageContext;protected String _sFormat;static final String _sFormatDefault ="EEEE, d MMMMyyyy 'at' kk:mm:ss z";public void setPageContext(PageContext pageContext) {_pageContext = pageContext;_sFormat = _sFormatDefault;}// Handle the tagpublic int doStartTag() throws JspException{SimpleDateFormat format =new SimpleDateFormat(getFormat());JspWriter out = _pageContext.getOut();Date date = new Date();String sdate = format.format(date);try{out.print(sdate);}catch (IOException ex){throw new JspException("DateTag: can't write: " +ex.getMessage());}return SKIP_BODY;}// Handlers for "format" attributepublic void setFormat(String sFormat){_sFormat = sFormat;}public String getFormat(){return _sFormat;}}TagSupport实现了标签处理器要求的所有接口。
这些方法本来没有做什么任何事,标签处理器开发人员重构了需要方法,允许基类处理调用所有的其他的方法。
标签处理器每一次被调用都会调setPageContext方法。
这个类为稍后便用简单的保存了PageContext参照。
当JSP引擎遇到这个标签时会调用doStartTag方法。
这个方法和第1个版本JSP页面的scriptlet处理了相同的事。
它将结果写回给JspWriter,结果包括了先存储的PageContext.所有写给JspWriter的内容,会被直接嵌入到响应页面。
注意doStartTag只能抛出JspException异常。
如果发生写失败,那么原始IOException会被转化成一个JspException重新抛出。
这个方法会返回SKIP_BODY,他告诉JSP容器抛弃标签内容。
标签处理器最后的两个方法是setFormat和getFormat。
机敏的读者应该已经知道了他作用。
他被网页容器用来设置标签属性值(后面进行更详细的讨论)。
在这儿他们被用来设定日期格式属性和输出日期格式属性。
标签定义:TLD文件一个标签库描述符文件, 或者TLD文件, 是一个XML文件。
他用来描述标签库中的标签。
以下是DateTag标签的描述文件。
<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE taglibPUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN""/dtd/web-jsptaglibrary_1_2.dtd"> <taglib><tlib-version>1.0</tlib-version><jsp-version>1.2</jsp-version><short-name>first</short-name><uri>/j2eetips/sept2002/taglib </uri><description>Sample tag library</description><tag><name>date</name><tag-class>com.elucify.tips.sep2002.DateTag</tag-class><body-content>empty</body-content><description>Print the date with a compiled-in format</description><attribute><name>format</name><required>false</required><rtexprvalue>false</rtexprvalue></attribute></tag></taglib>这些描述符提供了这个标签库的信息。