本文为原创,如需转载,请注明作者和出处,谢谢!
Struts的整个视图层(就是MVC模式中的View层)是由Struts的定制标签(或者称为定制动作)和客户端代码(Javascript、HTML等)实现的。这些Struts标签被写在JSP页面中,用于生成客户端代码、进行逻辑判断等工作,使用Struts标签可以尽量避免直接在JSP页面中直接使用Java代码,以使得JSP页面更容易编写和维护。
一、Struts1.x标签库概述
Struts的标签库分为如下五类:
1.HTML标签库
在HTML标签库中的定制标签一般和HTML中的tag是一一对应。如HTML中的<form>、各种类型的<input>在HTML标签库中都有定制标签和其对应。HTML标签库的目的是将视图层的组件和控制层连接起来(事实上,不使用HTML标签库中的定制标签也可以完成同样的工作,只是需要写更多的代码)。
2.Bean标签库
Bean标签库中的定制标签主要用来向客户端输出文本信息。那么Struts为什么要单独提供一个标签库来向客户端输出文本信息呢?原因有两个:
1.为Struts提供国际化支持(也就是说可以从属性文件中读取文本信息,并将其输出到客户端)。
2.为了避免直接使用Java代码获得存储在request和session对象中的内容。
3.Logic标签库
为了避免在JSP页面中直接使用Java代码进行逻辑判断和循环操作。Logic标签库提供了一组标签用于在不使用Java代码的情况下也可以完成同样的工作。而且使用标签进行逻辑判断和循环操作要比使用Java代码更容易理解和维护。
4.Nested标签库
这个标签库中的标签有来显示form或对象中的“nested”属性。
5.Tiles标签库
这个标签库的标签允许我们为视图层建立布局(layout)。
在Struts的标签库中有一些标签和JSTL有一定的重合,如Logic标签库的逻辑判断标签。但是JSTL要求Servlet容器要符合JSP 2.0规范,否则JSTL无法正常工作。这对于那么运行在较低版本的Servleet容器中的程序就无法享受JSTL给我们带来的强大的功能。但Struts标签却没这个要求。因此,如果我们的Web程序中使用了Struts,建议尽量使用Struts标签库中的标签,除非能保证Web应用程序的运行环境都支持JSP 2.0规范。
二、安装和声明Struts标签
由于在MyEclipse中已经带了Struts相应的jar包,因此,使用MyEclipse来开发基于Struts的Web应用程序就无需再安装Struts了。如果读者想使用其他的Struts版本,可以到http://struts.apache.org/去下载。
Struts标签库的声明和JSTL类似,它们都需要使用taglib指令。其实在MyEclipse中我们根本不需要记忆如何来声明Struts标签,因此,如果使用MyEclipse的高级JSP模板建立JSP页面,MyEclipse就会自动将声明Struts标签的语句加到了JSP页面中。在打开高级JSP模板后,在“Template to use”下拉列表框中选择“Standard JSP using Struts 1.2/1.3”,然后点击“Finish”按钮建立一个JSP页面。打开这个刚建立的JSP页面,我们会在page指令的下面看到四条tablib指令,其中Nested标签库并未自动加入,如果JSP页面中使用了Nested标签库中的标签,就需要我们手工加入Nested标签库的定义,Struts标签库的声明代码如下:
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><%@tagliburi="http://struts.apache.org/tags-bean"prefix="bean"%>
<%@tagliburi="http://struts.apache.org/tags-html"prefix="html"%>
<%@tagliburi="http://struts.apache.org/tags-logic"prefix="logic"%>
<%@tagliburi="http://struts.apache.org/tags-tiles"prefix="tiles"%>
<%--JSP高级模板并未加入Nested标签库声明,需要手工加入--%>
<%@tagliburi="http://struts.apache.org/tags-nested"prefix="nested"%>
在上面的Struts标签库的声明中,taglib标签的prefix属性值可以是任何字符串(但不同的标签库的prefix的值不同相同),但建议按着上面代码的声明语句中的prefix属性值来声明相应的Struts标签库。
还有一点需要注意,taglib指令的uri属性除了使用在.tld文件中定义的uri值来定位标签库外,还可以直接使用.tld文件的相对路径来定位。在使用MyEclipse将一个Web工程加入Struts特性后,会自动在WEB-INF目录中加入如下五个文件:
1.
struts-bean.tld:用于声明Bean标签库中标签的tld文件。
2.
struts-html.tld:用于声明HTML标签库中标签的tld文件。
3.
struts-logic.tld:用于声明Logic标签库中标签的tld文件。
4.
struts-tiles.tld:用于声明Tiles标签库中标签的tld文件。
5.
struts-nested.tld:用于声明Nested标签库中标签的tld文件。
因此,也可以使用如下的代码来声明Struts标签。
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><%@tagliburi="/WEB-INF/struts-bean.tld"prefix="bean"%>
<%@tagliburi="/WEB-INF/struts-html.tld"prefix="html"%>
<%@tagliburi="/WEB-INF/struts-logic.tld"prefix="logic"%>
<%@tagliburi="/WEB-INF/struts-tiles.tld"prefix="tiles"%>
<%--JSP高级模板并未加入Nested标签库声明,需要手工加入--%>
<%@tagliburi="/WEB-INF/struts-nested.tld"prefix="nested"%>
其中WEB-INF前面的“/”表示Web根目录。感兴趣的读者也可以打开这些.tld文件,查看其中的内容。也可以将这些.tld文件中的<uri>标签的内容改为其他的内容,如将struts-bean.tld文件中的<uri>标签的内容改为struts-bean,那么就可以使用如下的语句来声明Bean标签库了:
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><%@tagliburi="struts-bean"prefix="bean"%>
但要注意,要想使修改生效,需要重启Tomcat或是重新发布当前的Web应用程序。
分享到:
相关推荐
struts1.x入门教程
适用于Struts1.x初学者(网摘共25节)
Struts1.x常用的开发包,需要学习struts1.x朋友可以下载
struts1.x和struts2.x区别
无C:\Users\toshiba\Desktop\Struts标签库.doc
Struts1.x HTML标签库,好多标签用法介绍
Struts1.x的标签库使用示例,详细教程参考我的Blog:http://blog.csdn.net/boyazuo
freemarker与struts 1.x 结合,生成html 在http://blog.csdn.net/chen1255 的web中有详细描述关于freemarker与struts1.x的结合
这是struts1.x标签! struts1.x是历经考验的成熟的框架! 此标签可以帮助你更好的学习struts1.x的标签!
Struts1.x的登录示例,Struts1.x相关详细教程参考我的Blog:http://blog.csdn.net/boyazuo
在这里,通过一个小例子稍微总结了下struts1和struts2的区别,希望这个能帮助到初学struts的朋友
Struts1.x入门与提高系列教程.pdf 很好用的,拿来与大家分享
struts标签库struts标签库struts标签库struts标签库struts标签库struts标签库struts标签库struts标签库
文章来自:http://www.blogjava.net/nokiaguy/
java Struts 1.x 框架 Web 开发 java Struts 1.x 框架 Web 开发
Struts 2.x权威指南(第3版)
struts1.x多文件上传, 感觉不错.
struts安装,配置 如果你已经了解了MVC,那么使用Struts进行开发对你来说将是一件很爽的事情。下面来说一下基本配置方法(Struts1.X):1.下载Struts:2.加载jar包:3.配置web.xml:4.配置Struts-config.xml文件:
struts1.x apps 所有最新的Struts1.x项目应用 struts1.x apps 所有最新的Struts1.x项目应用 欢迎大家下载。。。
Struts1.x系列教程(1)文件乱码问题的解决.doc )