Struts标签库:
struts-bean.tld: bean标签的描述文件,bean标签用于访问JavaBeans和它们的关联属性,也可以用于定义新的Bean
struts-html.tld: html标签的描述文件,html标签主要用来创建Html输入表单的标记符
struts-logic.tld: logic标签的描述的文件,logic标签用于管理对输出内容条件判断,从一个集合对象中循环取出内容等以及应用程序的流程管理
struts-nested.tld: nested标签的描述文件,又称嵌套标签,使用嵌套属性可以自由的访问任一层的bean属性
struts-tiles.tld: tiles标签的描述文件,只有我们在工程中加入了titles组件时才会用到,titles框架为创建Web页面提供了一种模板机制,它能将网页的布局和内容分离。它允许先创建模板,然后在运行时动态地将内容插入到模板中。
-----------------------
使用Struts标记库的准备工作:
在应用程序部署文件web.xml文件中注册标记库
将标记库文件*.tld复制到应用/WEB-INF目录中
在使用该标记库的JSP页面中,使用<taglib>标记引入该标记库
Servlet2.4和servlet2.5规范不用在web.xml中配置
-----------------------
注册和引入html标记库:
<jsp-config>
<taglib>
<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>
</jsp-config>
taglib-uri 设定Tag Library的唯一标识符,在Web应用中将根据这一标识符来引用
Tag Library
taglib-location 指定和Tag Library对应的TLD文件的位置
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
uri :注册过的标记库uri
Prefix:指定匹配该标记库的标记前缀
---------------------
html表单及输入组件标记:
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<html:form action="/regist" focus="psw“ method=“post”>
User Name: <html:text property="name"/><br>
Password: <html:text property="psw"/><br>
<html:submit/>
</html:form>
----------------------
使用<form>标签时必须遵循一些规则:
1、标签中必须包含一个action属性,它是这个标签中唯一必需的属性。如果不具备该属性则JSP页面会抛出一个异常。之后你必须给这个action属性指定一个有效值。一个有效值是指应用程序的Struts配置文件中元素里的任何一个子元素的访问路径。而且相应的元素中必须有一个name属性,它的值是form bean的名称。
2、任何包含在<form>中用来接收用户输入的标签(<text>、<password>、<hidden>、<textarea>、<radio>、<checkbox>、<select>)必须在相关的form bean中有一个指定的属性值。比如,如果你有一个属性值被指定为“username”的<text>标签,那么相关的form bean中也必须有一个名为“username”的属性。输入<text>标签中的值会被用于生成form bean的userName属性。
3、<form>标签还有一些不是必须但很有用的“次要”属性。比如,你可以用focus属性来生成JavaScript,它会“定焦”(focus)到该form所包含的一个元素上。使用focus属性时你需要给它指定元素的名称。
name:指出关键字值,在该关键字下可以找到一个存在的bean, 如果给出了scope属性,则仅仅在scope中查找。否则,根据标准的顺序在各种scope中查找(page, request, session, or application)
property:指出bean中的某个属性,可以在其中检索值。如果没有标明,则使用对象本身的值
------------------
<html:text >标记:
用于生成一个单行文本域输入组件,该标记必须出现
在<form>标记中.
<% Books books=new Books();
books.setBooksID("123"); books.setBooksName("java");
request.setAttribute("books",books);
%>
:<html:text name="books" property="booksID"></html:text><br>
<html:text name="books" property="booksName"></html:text><br>
转换后:
<input type="text" name="booksID" value="123"><br>
<input type="text" name="booksName" value="java"><br>
-------------------
<html:password>标记 :
用于生成一个密码输入域组件
property: 元素名称
size: 显示的字数
value: 元素初值
redisplay: 是否顯示ActionForm的值 ,true显示,false不显示
它用于重新显示以前输入到这个区域中的值。该属性的缺省值为true ,为了使password不能被重新显示,你或许希望将该属性的值设为false。
----------------------
<html:hidden>标记:
隐藏域
----------------------
< html:textarea>标记 :
用于生成多行多列的文本输入域组件
---------------------
<html:radio>标记 :
用于生成单选按钮组件 ,它必须包含“value”属性
-----------------------
< html:checkbox>标记 :
用于生成复选框组建
----------------------
其他html标记:
<html:submit>标记
<html:submit>登陆</html:submit>
<html:submit value="提交"></html:submit>
<html:reset>标记
<html:reset>重置</html:reset>
<html:reset value="重置"></html:reset>
<html:option>标记
<html:select>标记
<html:select property="edu">
<html:option value="1">本科</html:option>
<html:option value="2">专科</html:option>
<html:option value="3">硕士</html:option>
</html:select>
-----------------------
<html:link>标签 :
<html:link>标签
forward属性:链接到一个global forward上;
action属性:链接到一个action mapping上;
href属性:这个链接会转发给控制器,由控制器做决定;
page属性:一个相对的链接。
<html:link href="customerAction.do?method=queryone">
修改href</html:link>
<html:link action=“customerAction.do?method=queryone”>
修改action</html:link>
<html:link forward="successed">修改forward</html:link>
<html:link page="/login.jsp">修改page</html:link>
<html:link> 标签的 paramId 属性指定请求参数名,paramName 属性指定变量的名字。如果变量为JavaBean ,用paramProperty 属性指定JavaBean 的属性。
<%
String cheyo = "hehehe";
pageContext.setAttribute("coolName", cheyo);
%>
link Forward: <html:link forward="success" paramId="name" paramName="coolName">forward</html:link><p/>
link Page: <html:link page="/here.jsp?bigId=5&smallId=3" paramId="name" paramName="coolName" >page</html:link><p/>
link Href: <html:link href="http://www.youkuaiyun.com" paramId="name" paramName="coolName">href</html:link><p/>
<%
Person person=new Person();
person.setName("zhang");
pageContext.setAttribute("person",person);
%>
<%
Person person=new Person();
person.setName("zhang");
pageContext.setAttribute("person",person);
%>
link Forward:
<html:link forward="success" paramId="idname" paramName="person"
paramProperty="name" >forward person</html:link><p/>
link Page:
<html:link page="/here.jsp?bigId=5&smallId=3" paramId="idname"
paramName="person" paramProperty="name" >page</html:link><p/>
link Href:
<html:link href="http://www.youkuaiyun.com" paramId="idname" paramName="person"
paramProperty="name">href</html:link><p/>
--------------------
<html:rewrite>标签:
<html:rewrite> 用于输出超链接中的URI部分,但它并不生成
HTML <a> 元素
<%
String cheyo = "hehehe";
pageContext.setAttribute("coolName", cheyo);
%>
Rewrite Forward:
<html:rewrite forward="success" paramId="name"
paramName="coolName"/><p/>
Rewrite Page:
<html:rewrite page="/here.jsp?bigId=5&smallId=3"/><p/>
Rewrite Href:
<html:rewrite href="http://www.youkuaiyun.com" paramId="name"
paramName="coolName"/><p/>
<%
Person person=new Person();
person.setName("zhang");
pageContext.setAttribute("person",person);
%>
Rewrite Forward: .
<html:rewrite forward="success" paramId="idname"
paramName="person" paramProperty="name"/><p/>
Rewrite Page:
<html:rewrite page="/here.jsp?bigId=5&smallId=3"
paramId="idname" paramName="person" paramProperty="name" /><p/>
Rewrite Href:
<html:rewrite href="http://www.youkuaiyun.com" paramId="idname"
paramName="person" paramProperty="name" /><p/>
--------------------
<html:img >标签 :
<html:img>标签最重要的属性page:图象文件的路径,前面必须带有一个斜线。其它属性:heignt、width、alt。
图片page
<html:img page="/tomcat.gif" />
图片action
<html:img action="customerAction.do?method=showimg"/>
<action path="/customerAction" name="customerForm"
type="org.struts.action.CustomerAction"
parameter="method">
<forward name="showimg" path="/tomcat.gif"></forward>
</action>
---------------------
显示错误信息的标记 :
<html:errors>标记
通过该标记可以在一个JSP页面上显示完全自定义的、国际化的错误消息。
------------------------
显示Bean属性<bean:write>标记 :
获取bean的属性并将该属性值打印输出到响应页面。其功能
与JSP标记<jsp:getProperty>类似 .
属性描述Name :要进行属性显示的bean的名称property :要显示的属性的名称。
Scope :Bean的作用域,若没有设置,搜索范围是从页到应用程序作用域例如:<bean:write name=”myBean” property=”myProperty” scope=”request”>myBean的属性myProperty将会被显示,作用域为请求.
<%
org.struts.bean.form.Person p=new org.struts.bean.form.Person();
p.setAge(20);
p.setName("zhang");
request.setAttribute("pp",p);
%>
<bean:write name="pp" property="name" scope="request" />
--------------------
<bean:message>标记 :
通过指定属性文件中定义的“键-值”对的键名,然后获取其“键值”信息的。
<bean:message key=”info.myKey”>
特殊的标签:
options:
collection表示的是一个集合,该值为作用域中key。该集合中存放的javaBean
property:表示javaBean中的属性;该属性的值是转化为option标签中的value的值
LabelProrerty:
表示javaBean中的属性,该属性的值是转化为option标签中文本的值。
html:multibox
产生复选框
property属性:解析后该属性的值就是input type=“checkbox”中name属性的值
html:multibox标签