44
Struts Struts 常常常常 常常常常 常常常常常常常

Struts 常用标签

  • Upload
    binta

  • View
    281

  • Download
    6

Embed Size (px)

DESCRIPTION

Struts 常用标签. 中科软培训中心. 回顾. 什么是 MVC? Struts 是怎么去实现 MVC 的 ? Struts 基本组件有那些 ? 基本组件之间有什么关系 ?. 重点. 了解 Struts 标签的运行机制 ; 学会使用 html 系列标签 ; 学会使用 bean 系列标签 ; 学会使用 logic 系列标签 ; 了解 Nested 系列标签 ;. 回顾一下自定义标签. 写一个实现 Tag 接口的 Java 类 ; 在 java 类中处理一些业务逻辑 , 如果要输出到页面就通过 out 对象输出 ; 写一个 tld 的配置文件 ; - PowerPoint PPT Presentation

Citation preview

Page 1: Struts 常用标签

StrutsStruts 常用标签常用标签中科软培训中心

Page 2: Struts 常用标签

回顾回顾什么是MVC?Struts是怎么去实现MVC的 ?Struts基本组件有那些 ?基本组件之间有什么关系 ?

Page 3: Struts 常用标签

重点重点了解 Struts标签的运行机制 ;学会使用 html系列标签 ;学会使用 bean系列标签 ;学会使用 logic系列标签 ;了解 Nested系列标签 ;

Page 4: Struts 常用标签

回顾一下自定义标签回顾一下自定义标签写一个实现 Tag接口的 Java类 ;在 java类中处理一些业务逻辑 ,如果要输出到页面就通过 out对象输出 ;写一个 tld的配置文件 ;在 JSP页面导入 tld文件并使用 ;

Page 5: Struts 常用标签

StrutsStruts 标签标签方便用户 ,提高代码效率 ;Struts标签和 HTML标签效果完全相同 ;使 View和 Struts的其它组件更好的结合在一起 ;

Page 6: Struts 常用标签

StrutsStruts 标签分类标签分类HTML标签库Bean标签库Logic标签库Nested标签库

Page 7: Struts 常用标签

HTMLHTML 标签库标签库HTML标签分类用于生成基本的 HTML元素的标签 ;用于生成表单的标签 ;显示错误或正常消息的标签 ;

Page 8: Struts 常用标签

用于生成基本的用于生成基本的 HTMLHTML元素的标元素的标签签<html:html>:生成 HTML<html>元素 .<html:base>:生成 HTML<base>元素 .<html:link>:生成 HTML<a>元素 .<html:rewrite>:生成用户请求的 URL.<html:img>:生成 HTML<img>元素 .

Page 9: Struts 常用标签

例子例子 :Struts-02/HTML.jsp:Struts-02/HTML.jsp<body><div align="center"><html:rewrite page="/HTML.jsp" /><br><html:link href="http://www.baidu.com">百渡 </html:link><br><html:img src="imge/123.jpg" /><br><html:link forward="index">返回首页 </html:link></div></body>

Page 10: Struts 常用标签

用于生成表单的标签用于生成表单的标签所有的表单标签的 property属性必须要跟 FormBean中的属性中对应 !action,formBean和 property根据 struts-con

fig.xml中具体配置有着对应关系 ; <html:form>:生成 HTML<form>元素 ; <html:text>:生成 HTML<input type=text>元素 <html:password>:生成 HTML<input type=password>元素 <html:hidden>:生成 HTML<input type=hidden>元素 <html:submit>:生成 HTML<input type=submit>元素 <html:cancel>:生成 HTML<input type=cancel>元素 <html:reset>:生成 HTML<input type=reset>元素

Page 11: Struts 常用标签

检查框和单选按钮标签检查框和单选按钮标签<html:checkbox>:生成 HTML<input type

=checkbox>元素<html:multibox>:在表单上生成复选框元素<html:radio>:生成 HTML<input type=radi

o>元素

Page 12: Struts 常用标签

下拉列表和多选列表标签下拉列表和多选列表标签<html:select>:生成 HTML<select>元素<html:option>:生成 HTML<option>元素<html:options>:生成一组 HTML<option>元素<html:optionsCollection>:生成一组 HTM

L<option>元素

Page 13: Struts 常用标签

例例 :Struts-02/FORM.jsp:Struts-02/FORM.jsp<div align="center"><html:form action="/disp" method="post"><bean:message bundle="FORM" key="FORM.jsp.form.userName" /><html:text property="userName"></html:text><html:errors property="userName" bundle="ERRORS" /><br><bean:message bundle="FORM" key="FORM.jsp.form.userPwd" /><html:password property="userPwd"></html:password><br><html:hidden property="hidden" value="这是一个隐匿值" /><br><hr><bean:message bundle="FORM" key="FORM.jsp.form.sex" /><html:radio property="sex" value="男"><bean:message bundle="FORM" key="FORM.jsp.form.sex.man" /></html:radio><html:radio property="sex" value="女"><bean:message bundle="FORM" key="FORM.jsp.form.sex.woman" /></html:radio><br><bean:message bundle="FORM" key="FORM.jsp.form.married" /><html:checkbox property="married"></html:checkbox><br><bean:message bundle="FORM" key="FORM.jsp.form.loves" /><html:multibox property="loves">上网</html:multibox><bean:message bundle="FORM"key="FORM.jsp.form.loves.items.online" /><html:multibox property="loves">游戏</html:multibox><bean:message bundle="FORM"key="FORM.jsp.form.loves.items.palyGame" /><html:multibox property="loves">购物</html:multibox><bean:message bundle="FORM"key="FORM.jsp.form.loves.items.shopping" /><html:multibox property="loves">电影</html:multibox><bean:message bundle="FORM" key="FORM.jsp.form.loves.items.movie" /><br><bean:message bundle="FORM" key="FORM.jsp.form.birthday" /><html:select property="year"><c:forEach begin="1940" end="2005" var="y"><html:option value="${y}">${y}</html:option></c:forEach></html:select><bean:message bundle="FORM"key="FORM.jsp.form.birthday.items.year" /><html:select property="month"><c:forEach begin="1" end="12" var="m"><html:option value="${m}">${m}</html:option></c:forEach><bean:message bundle="FORM"key="FORM.jsp.form.birthday.items.month" /><br></html:select><br><bean:message bundle="FORM" key="FORM.jsp.form.department" /><html:select property="department"><html:options collection="department" property="value"labelProperty="label" /></html:select><br><hr><html:submit><bean:message bundle="FORM" key="FORM.jsp.form.button.submit" /></html:submit><html:reset><bean:message bundle="FORM" key="FORM.jsp.form.button.reset" /></html:reset><html:cancel><bean:message bundle="FORM" key="FORM.jsp.form.button.cancel" /></html:cancel></html:form>

</div>

Page 14: Struts 常用标签

表单中的文件标签表单中的文件标签<html:file>生成 HTML<input type=file>元素在 Frombean中对应此标签的数据类型是 or

g.apache.struts.upload.FormFile对象 ;

Page 15: Struts 常用标签

例例 :Struts-02/FileFORM.jsp:Struts-02/FileFORM.jsp<html:form action="/dofile" enctype="multipart/for

m-data"><bean:message bundle="FORM" key="FileFORM.js

p.form.fileName" /><html:file property="file"></html:file><html:submit><bean:message bundle="FORM" key="FileFORM.js

p.form.button.sumbit" /></html:submit></html:form>

Page 16: Struts 常用标签

<html:errors/><html:errors/> 标签标签用于显示 request和 session做用域对象中的

ActionMessages(或其字类 )对象中的文本 ;<bean:message/>作用是一样的 ,不过 .我们多数是用 <html:errors/>标签来完成错误输出 ,而 <bean:message/>标签用来完成资源文件输出 ;例 :<html:errors property="sex"></html:errors>

Page 17: Struts 常用标签

BeanBean 标签库标签库Bean标签分类用于访问 HTTP请求信息或 JSP隐含对象的 bean标签 ;用户访问Web应用资源的 Bean标签 ;用于定义或输出 JavaBean的 Bean标签 ;

Page 18: Struts 常用标签

用于访问用于访问 HTTPHTTP请求信息或请求信息或 JSPJSP隐含对象的隐含对象的 beanbean标签标签<bean:cookie>:访问 Cookie信息<bean:header>:访问 HTTP请求中的 head

er信息<bean:parameter>:访问请求参数 ;<bean:page>:访问 JSP隐含对象 ;

Page 19: Struts 常用标签

<bean:cookie>--<bean:cookie>-- 访问访问 CookieCookie信信息息作用 :可以检索保存在浏览器中的 cookie;属性 :Id:定义一个 javax.servlet.http.Cookie的变量 ,并把他放到 page范围内 ;Name:指定 cookie的名字 ;Value:指定 cookie的默认值 ,如果 name不存在 ,就指定 value的默认值

Page 20: Struts 常用标签

<bean:header>--<bean:header>-- 访问访问 HTTPHTTP请求请求中的中的 headerheader信息信息作用 :用于检索 HTTP请求中的 Header信息 ;属性 :Id:定义一个 java.lang.String的对象 .并放到 page范围内 ;Name:指定要检索的 Header信息 ;

Page 21: Struts 常用标签

<bean:parameter>--<bean:parameter>-- 访问请求参访问请求参数数作用 :用于检索 HTTP中的请求参数 ;属性 :id:定义一个 java.lang.String类型的变量 ,并放到 page范围中 ;Name:指定请求参数名 ;Value:指定请求参数的默认值 ;

Page 22: Struts 常用标签

<bean:page>--<bean:page>-- 访问访问 JSPJSP 隐含隐含对象对象作用 :用于检索 JSP隐含对象 ,如 session,re

quest和 response等 ;属性 :Id:定义一个引用的隐含对象的变量 ,并放到 page中 ;Property:指定隐含对象的名称 ,可选项有 :

application,config,request,response,session;

Page 23: Struts 常用标签

用户访问用户访问 WebWeb 应用资源的应用资源的 BeanBean标签标签<bean:message>:显示 ResourceBundle中的消息 ;<bean:resource>:把Web资源加载到一个

JavaBean中 ;<bean:struts>:访问 Struts内在配置对象 ;<bean:include>:包含一个Web资源 ;

Page 24: Struts 常用标签

<bean:message>--<bean:message>-- 显示显示 ResourcResource-Bundlee-Bundle 中的消息中的消息

作用 :用于输出 Resource Bundle文件中的资源信息 ;属性 : Bundle: 指定 Resource Bundle文件 ,配合 struts-config.

xml中的 <message-resources/>标签的 key属性使用 ; Key:指定 Resource Bundle文件中的 key; Name:定义一个 java.lang.String类型的变量 ,值等于 R

esource Bundle文件中 key所对应的值 ; Property:配合 Name属性使用 ; Arg0到 arg4:配合 Resource Bundle文件中值的 {0}…

{4}占位符使用 ,用来替换占位符的值 ;

Page 25: Struts 常用标签

<bean:resource>--<bean:resource>-- 把把WebWeb资源资源加载到一个加载到一个 JavaBeanJavaBean中中作用 :用于检索Web资源的内容 ;属性 :Id:定义一个Web资源的变量 ;Name:指定Web资源的路径 ;Input:如果没有设置 input属性 ,则 ID属性定义的变量为字符串类型 ,如果给 inpu

t属性设置了值 ,则 id属性定义的变量为java.io.InputStream类型 ;

Page 26: Struts 常用标签

<bean:struts>--<bean:struts>-- 访问访问 StrutsStruts 内在内在配置对象配置对象作用 :用于检索 Struts框架内在的对象 ;属性 : Id:定义一个 page范围类的变量 ; Formbean:指定 actionFormBean对象 ; Forward:指定 actionForward对象 ; mapping:指定 actionMapping对象 ;FormBean/Forward/Mapping属性的值分别与 strut

s-config.xml文件中的对象所匹配 ;

Page 27: Struts 常用标签

<bean:include>--<bean:include>-- 包含一个包含一个 WebWeb资源资源作用 :用来包含其他Web资源的内容 ,跟标准标签 <jsp:include>用法一样 ;属性 :Forward:指定全局转发路径 ,关联 struts-co

nfig.xml文件使用 ;Page:指定相对于当前应用的 URL以’’

/’’开头 ;Href:指定完整的 URL;

Page 28: Struts 常用标签

用于定义或输出用于定义或输出 JavaBeanJavaBean 的的 BeaBeann标签标签

<bean:define>:定义一个变量 ;<bean:write>:显示一个变量的值 ;<bean:size>:获得一个集合的长度 ;

Page 29: Struts 常用标签

<bean:define>--<bean:define>-- 定义一个变量定义一个变量作用 :用于定义一个变量 ;属性 :Id:定义变量名字 ;toScope:指定这个变量存放范围 ,缺省为

page;Value:直接给变量赋值 ;Name和 property:将存在作用域中的对象的属性值赋给变量 ;

Page 30: Struts 常用标签

<bean:write>--<bean:write>-- 显示一个变量的值显示一个变量的值作用 :用于在网页上输出某个 Bean或它的属性的内容 ;属性 :Name:存在作用域对象中的属性名 ;property:配合 name属性一起使用 ,输出对象的属性 ;Format:按指定格式输了 ;Filter:只否把 html标签原样输出 ;

Page 31: Struts 常用标签

<bean:size>--<bean:size>-- 获得一个集合的长获得一个集合的长度度作用 :用于获得Map,Collection或数组的长度 ;属性 :Id:定义一个变量存在长度 ;Name:集合名称 ;

Page 32: Struts 常用标签

例例 :Struts-02/BEAN.jsp:Struts-02/BEAN.jsp<body><h2>用户访问Web应用资源的Bean标签</h2><hr><b>这是从资源文件时面读出来的:</b><bean:message key="BEAN.jsp.message" /><br><b>得到并输出一个资源对象:</b><bean:resource id="res1" name="/include.jsp" /><bean:write name="res1" /><br><b>首页的路径:</b><bean:struts id="index1" forward="index" /><bean:write name="index1" property="path" /><br><b>被包含进来的页面:</b><bean:include id="page1" page="/include.jsp" /><bean:write name="page1" filter="false" /><hr><h2>用于定义或输出JavaBean的Bean标签</h2><hr><b>定义并输出一个字符串:</b><bean:define id="str1" value="中科软培训中心"></bean:define><bean:write name="str1" /><br><%List list = new ArrayList();list.add("red");list.add("bule");list.add("green");pageContext.setAttribute("list", list);%><b>输出数组<bean:write name="list" /> 的长度:</b><bean:size id="listLength" name="list" /><bean:write name="listLength" /><hr><p align="center"><html:link forward="index">返回首页</html:link></p></body>

Page 33: Struts 常用标签

LogicLogic 标签库标签库Struts Logic标签库可以根据特定的逻辑条件来控制输出网页内容 ;主要学习 :进行字符串匹配的 Logic标签 ;进行循环遍历的 Logic标签 ;进行请求转发或者是重定向的 Logic标签 ;

Page 34: Struts 常用标签

进行字符串匹配的进行字符串匹配的 LogicLogic 标签标签比较运算 : <logic:equal>:判断是否等于 ; <logic:notEqual>:判断是否不等于 ; <logic:greaterEqual>:判断是否大于或等于 ; <logic:greaterThan>:判断是否大于 ; <logic:lessEqual>:判断是否小于或等于 ; <logic:lessThan>:判断是否小于 ;比较标签只能做变量和常量之间的比较 ,不能做变量和变量或常量和常量之间的比较 ;属性 : Nama:指定要做比较的并存在于作用域中的变量名 ; Value:指定常量值

Page 35: Struts 常用标签

进行字符串匹配的进行字符串匹配的 LogicLogic 标签标签 <logic:match>:包含特定字符串 ; <logic:notMatch>:不包含特定字符串 ;作用 :判断指定变量中是否包含指定常量 ;属性 :Name:存在作用域范围内的变量名 ;Value:常量值 ;Location:可选值只是 start(判断指定变量是否以常开头 )和 end(判断指定变量是否以常结束 );

Page 36: Struts 常用标签

进行字符串匹配的进行字符串匹配的 LogicLogic 标签标签<logic:empty>:是否为空或”” ;<logic:notEmpty>是否不为空或”” ;属性 :Name:要判断的变量名 ;

Page 37: Struts 常用标签

进行循环遍历的进行循环遍历的 LogicLogic 标签标签<logic:iterate>作用 :是 Logic标签库中最复杂的标签 ,也是用途最广的标签 ,他可以循环遍历数组 ,Collection,E

numeration,Iterator或Map中的所有元素 ;属性 : Name:指定要进行遍历的集合对象 ; Id:每次从集合中检索出一个元素 ,把他放到 pa

ge范围中 ,并以 id命名 ;

Page 38: Struts 常用标签

<logic:iterate><logic:iterate> 的属性的属性indexId:定义一个代表当前被遍历元素序号的变量 ,存放在 page范围内 ;length:定义需要遍历的元素的数日 ;Offset:指定开始遍历的起始位置 ;

Page 39: Struts 常用标签

进行请求转发或者是重定向的进行请求转发或者是重定向的 LogLogicic标签标签

<logic:forward>:进行请求转发 ;<logic:redirect>:进行请求重定向 ;

Page 40: Struts 常用标签

<logic:forward>--<logic:forward>-- 进行请求转进行请求转发发作用 :用于转发一个请求 ;属性Name:指定 struts-config.xml配置文件中的

actionForward对象 ;

Page 41: Struts 常用标签

<logic:redirect>--<logic:redirect>-- 进行请求重定向进行请求重定向作用 :用于重定向请求 ;属性Forward:指定配置文件里的 actionForwar

d对象 ;Page:根据当前的相对 URL路径 ;Href:URL的绝对路径 ;

Page 42: Struts 常用标签

例例 :struts-02/LOGIC.jsp:struts-02/LOGIC.jsp<body><h2>比较运算:</h2><hr><bean:define id="i" value="33"></bean:define><logic:equal value="33" name="i"> i=33;<br></logic:equal><logic:lessThan value="34" name="i"> i&lt;34<br></logic:lessThan><logic:greaterThan value="32" name="i"> i&gt;32<br></logic:greaterThan>i的值:<bean:write name="i" /><br><hr><h2>进行字符串匹配的Logic标签</h2><hr><bean:define id="str" value="sinosoft.com.cn"></bean:define><logic:match name="str" value="sinosoft"><bean:write name="str" />中包含了字符串"sinosoft".<br></logic:match><logic:notMatch value="www" name="str"><bean:write name="str" />中不包含字符串"www".<br></logic:notMatch><logic:notEmpty name="str"><bean:write name="str" />不为null或"";</logic:notEmpty><hr><h2>进行循环遍历的Logic标签</h2><%List list = new ArrayList();list.add("red");list.add("bule");list.add("green");pageContext.setAttribute("list", list);%>我们有一个List对象:<bean:write name="list" /><br>遍历结果:<br><logic:iterate id="element" name="list" indexId="id"><bean:write name="id" />---<bean:write name="element" /><br></logic:iterate><br><br><br>从第二个元素开始遍历,遍历两个元素:<br><logic:iterate id="element" name="list" indexId="id" offset="1"length="2"><bean:write name="id" />---<bean:write name="element" /><br></logic:iterate><br><br><br>如果是嵌套List,我们也可以通过嵌套iterate进行遍历:<%list = new ArrayList();list.add(new String[] { "a", "b", "c", "e", "f" });list.add(new String[] { "1", "2", "3", "4", "5" });pageContext.setAttribute("list", list);%><br>下面我们有一个嵌套List为:<bean:write name="list" />,我们的遍历结果为:<br><logic:iterate id="cur" name="list" indexId="listId"><bean:write name="listId" />---><bean:write name="cur" /><br><logic:iterate id="cur1" name="cur" indexId="stringId"><bean:write name="listId" />---><bean:write name="stringId" />---><bean:write name="cur1" /><br></logic:iterate></logic:iterate><br><br><br>如果我们要对一个Map对象进行遍历,我们可以通过bean:write的name和property属性来完成:<br><%Map stus= new HashMap();stus.put("0001","Jack");stus.put("0203","Marry");stus.put("0171","Jesson");stus.put("8021","DoubleJ");pageContext.setAttribute("stus",stus); %>现在我们有一个Stus的Map对象:<bean:write name="stus" /><br>遍历结果:<br><logic:iterate id="element" name="stus"><bean:write name="element" property="key" />---><bean:writename="element" property="value" /><br></logic:iterate><hr>

Page 43: Struts 常用标签

NestedNested 标签库标签库Struts Nested标签库主要是表达 JavaBean之间的嵌套关系 ,使用率不高 ,有需要自学一下 !

Page 44: Struts 常用标签

总结总结Struts的标签库分那几类 ?每一类有那些标签 ?

作业 :把上课所有标签的作用和属性回家在 JSP页面中作用一遍 !