struts2常用标签.docx
- 文档编号:12918815
- 上传时间:2023-04-22
- 格式:DOCX
- 页数:52
- 大小:222.84KB
struts2常用标签.docx
《struts2常用标签.docx》由会员分享,可在线阅读,更多相关《struts2常用标签.docx(52页珍藏版)》请在冰豆网上搜索。
struts2常用标签
Struts1.x与Struts2.0的标志库(TagLibrary)作比较
要在JSP中使用Struts1标签,需要先指明标签的引入:
<%@tagliburi="/WEB-INF/struts-bean.tld"prefix="bean"%>
<%@tagliburi="/WEB-INF/struts-html.tld"prefix="html"%>
<%@tagliburi="/WEB-INF/struts-logic.tld"prefix="logic"%>
……
要在JSP中使用Struts2标签,需要先指明标签的引入:
<%@taglibprefix=”s”uri=”/struts-tags”%>
非UI标签、UI标签(基于表单的UI标签和其他UI标签)
1、非UI标签
1)、if\elseif和else
执行基本的条件流转
例子:
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
Condition Flow
set name="name" value="<%= "'" + request.getParameter("name") + "'" %>" /> if test="#name == 'Max'"> Max's file here if> elseif test="#name == 'Scott'"> Scott's file here elseif> else> Other's file here else> Iterator 2)、iterator 用于遍历集合(java.util.Collection)或枚举值(java.util.Iterator) 例子: <%@ page contentType="text/html; charset=UTF-8" %> <%@ page import="java.util.List" %> <%@ page import="java.util.ArrayList" %> <%@ taglib prefix="s" uri="/struts-tags" %> DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <% List list = new ArrayList(); list.add("Max"); list.add("Scott"); list.add("Jeffry"); list.add("Joe"); list.add("Kelvin"); request.setAttribute("names", list); %>
Names:
- White
property />
gray">
property />
iterator value="#request.names" status="stuts"> if test="#stuts.odd == true">
if>
else>
else>
iterator>
--
1、此处的空property元素用于获得当前iterator的值
2、status被设成stuts,在iterator的里面就可以通过#stuts取得IteratorStatus的对象。
IteratorStatus类包含当前序号信息,如是否第一个或最后一个,是否为奇数序号。
这些信息在我们做格式化的时候,显得非常有用。
-->
3)、i18n
加载资源包到值堆栈。
它可以允许text标志访问任何资源包的信息,而不只当前action相关联的资源包
例子:
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
i18n name="ApplicationMessages"> text name="HelloWorld" /> i18n> 4)、include 包含一个servlet的输出(servlet或jsp的页面) 例子: <%@ page contentType="text/html; charset=UTF-8" %> <%@ taglib prefix="s" uri="/struts-tags" %> DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
Interator Page
include value="/condition.jsp"> param name="name">Max param>
include>
i18n
include value="/i18n.jsp" /> 5)、param 为其他标签提供参数,比如include标签和bean标签.参数的name属性是可选的,如果提供,会调用Component的方法addParameter(String,Object),如果不提供,则外层嵌套标签必须实现UnnamedParametric接口(如TextTag) value的提供有两种方式,通过value属性或者标签中间的text,不同之处我们看一下例子: --(A)--> --(B)--> (A)参数值会以String的格式放入statck. (B)该值会以java.lang.Object的格式放入statck 6)、set set标签赋予变量一个特定范围内的值。 当希望给一个变量赋一个复杂的表达式,每次访问该变量而不是复杂的表达式时用到。 其在两种情况下非常有用: 复杂的表达式很耗时(性能提升)或者很难理解(代码可读性提高) 7)、text 支持国际化信息的标签。 国际化信息必须放在一个和当前action同名的resourcebundle中,如果没有找到相应message,tagbody将被当作默认message,如果没有tagbody,message的name会被作为默认message 8)、url 该标签用于创建url,可以通过"param"标签提供request参数 当includeParams的值时'all'或者'get',param标签中定义的参数将有优先权,也就是说其会覆盖其他同名参数的值 例子: <%@ page contentType="text/html; charset=UTF-8" %> <%@ taglib prefix="s" uri="/struts-tags" %> DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
URL
url value="/i18n.jsp" />'>i18n
url id="url" value="/condition.jsp"> param name="name">Max param>
url>
a href="%{url}">if\elseif\else
a>
9)、property
得到'value'的属性,如果value没提供,默认为堆栈顶端的元素
数据标签
action标签
action标签可以允许在JSP页面中直接调用Action,因为需要调用Action,故可以指定需要被调用Action的name及namespace,如果指定了executeResult参数的属性值为true,该标签还会把Action的处理结果(视图资源)包含在本页面中来
属性:
id:
这是一个可选属性,该属性将作为该Action的引用ID
name:
这是一个必填属性,通过该属性指定该标签调用那个Action
namespace:
这是一个可选属性,该属性指定该标签调用的Action所在的namespace
executeResult:
这是一个可选属性,该属性指定是否要将Action的处理结果页面包含到本页面,该属性默认值是false,即不包含
ignoreContextParams:
这是一个可选参数,它指定该页面中的请求参数是否需要传入调用的Action,该参数的默认值是false,即将本页面的请求参数传入被调用的Action
packagetest;
importorg.apache.struts2.ServletActionContext;
importcom.opensymphony.xwork2.ActionSupport;
publicclassTagActionextendsActionSupport{
privateStringauthor;
publicStringgetAuthor(){
returnauthor;
}
publicvoidsetAuthor(Stringauthor){
this.author=author;
}
//定义第一个处理逻辑
publicStringexecute()throwsException{
return"done";
}
//定义第二个处理逻辑
publicStringlogin()throwsException{
ServletActionContext.getRequest().setAttribute("author",getAuthor());
return"done";
}
}
Action类包含了两个处理逻辑,可以在struts.xml文件中通过指定method属性来将该Action类映射成两个逻辑Action,
--定义第一个Action,使用test.TagAction的execute方法作为处理逻辑-->
--定义第二个Action,使用test.TagAction的login方法作为处理逻辑-->
在JSP页面中使用 action>标签来调用这两个逻辑Action 下面调用第一个Action,并将结果包含到本页面中 actionname="tag1"executeResult="true"> action>
下面调用第二个Action,并将结果包含到本页面中
阻止本页面请求参数传入Action
actionname="tag2"executeResult="true"ignoreContextParams="true">
action>
下面调用第二个Action,且不将结果包含到本页面中
actionname="tag2"executeResult="false">
action>
propertyvalue="#attr.author">
property>
bean标签
bean标签用于创建一个JavaBean实例,可以在该标签体内受用标签为该JavaBean实例传入属性,当需要传入属性值,则应该为JavaBean类提供对应的setter方法;需要访问属性值,则应该提供getter方法
属性:
name:
该属性是一个必填属性,指定要实例化的JavaBean的实现类
id:
该属性是一个可选属性,如果指定,则该JavaBean实例会被放入StackContext中,从而允许直接通过id属性来访问该实例
packagetest;
publicclassPerson{
privateStringname;
privateintage;
publicPerson(){
super();
//TODOAuto-generatedconstructorstub
}
publicPerson(Stringname,intage){
super();
this.name=name;
this.age=age;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicintgetAge(){
returnage;
}
publicvoidsetAge(intage){
this.age=age;
}
}
JSP页面中 bean…/>标签访问 --使用bean标签创建一个test.Person类的实例--> beanname="test.Person"> --使用param标签为test.Person类的实例传入参数--> paramname="name"value="zhangsan"> param> paramname="age"value="20"> param> --因为在bean标签内,test.Person实例位于ValueStack的栈顶,故可以直接访问实例--> propertyvalue="name"/> propertyvalue="age"/> bean> 当指定id属性,就可以将该实例放在StackContext中,即使不在 bean…/>标签内,也可以通过id属性访问: --使用bean标签创建一个test.Person类的实例,为其指定了id属性--> beanname="test.Person"id="p"> --使用param标签为test.Person类的实例传入参数--> paramname="name"value="test2"> param> paramname="age"value="30"> param> bean> --根据JavaBean实例指定id属性来访问该实例--> propertyvalue="#p.name"/> propertyvalue="#p.age"/> date标签 date标签用于格式化输出一个日期,属性: format: 这是可选属性,指定它,将根据指定的格式来格式化日期 nice: 可选,只能为true或false,用于指定是否输出指定日期合当前时刻之间的时差,默认为false(不输出时差) name: 必填,要格式化的日期值 id: 可选, 如果即指定nice=”true”,也指定format,则输出时差,format失效 <% //生成一个Date实例 java.util.Datenow=newjava.util.Date(107,12,23,13,23,24); //设置成一个pageContext属性 pageContext.setAttribute("now",now); %> nice="false",且指定format="dd/MM/yyyy" datename="#attr.now"format="dd/MM/yyyy"nice="false"/> nice="true",且指定format="dd/MM/yyyy" datename="#attr.now"format="dd/MM/yyyy"nice="true"/> nice="false" datename="#attr.now"nice="false"/> nice="true" datename="#attr.now"nice="true"/> debug标签 debug标签主要用于辅助调试,在页面上生成一个超级链接,通过该链接可以查看到ValueStack和StackContext中所有的值信息 debug/> 2、UI标签 UI标志又可以分为表单UI和非表单UI两部分。 表单标签: 两种: form标签本身和单个表单元素的标签,form标签本身的行为不同于表单元素标签 表单标签的通用属性 所有表单标签处理类都继承了UIBean类,UIBean包含了一些通用属性: -模板相关属性: templateDir: 指定该表单所用的模板文件目录 theme: 指定该表单所用的主题 template: 指定该表单所用的模板 -JavaScript相关属性: onclick: 指定鼠标在该标签生成的表单元素上单击时触发的JavaScript函数 ondbclick: 指定鼠标在该标签生成的表单元素上双击时触发的JavaScript函数 onmousedown: 指定鼠标在该标签生成的表单元素上按下时触发的JavaScript函数 onmouseup: 指定鼠标在该标签生成的表单元素上松开时触发的JavaScript函数 onmouseover: 指定鼠标在该标签生成的表单元素上悬停时触发的JavaScript函数 onmouseout: 指定鼠标移出该标签生成的表单元素时触发的JavaScript函数 onfocus: 指定该标签生成的表单元素得到焦点时触发的函数 onblur: 指定该标签生成的表单元素失去焦点时触发的函数 onkeypress: 指定单击键盘上某个健时处触发的函数 onkeyup: 指定松开键盘上某个健时触发的函数 onkeydown: 指定按下键盘上某个健时触发的函数 onselect: 对下拉列表项等可以选择表单元素,指定选中该元素时触发的JavaScript函数 onchange: 对于文本框等可以接受输入的表单元素,指定当值改变时触发的JavaScript函数 上面属性并不是对Struts2的每个标签都有效 -通用属性: 为表单元素设置提示,Tooltip: tooltip: 设置此组件的Tooltip tooltioIcon: 设置Tooltip图标的URL路径 tooltipAboveMousePointer: 是否在光标位置上显示Tooltip,也可通过设置tooltipOffseY属性,设置Tooltip与光标位置的垂直位移 tooltopBgColor: 设置Tooltip的背景色 tooltipBgImg: 设置Tooltip的背景图片 tooltipBorderWidth: 设置Tooltip边框的宽度 tooltipBorderColor: 设置Tooltip边框的颜色 tooltipDelay: 设置显示Tooltip的时间延迟(毫秒) too
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- struts2 常用 标签
![提示](https://static.bdocx.com/images/bang_tan.gif)