通常,网站开发中定义完成一个页面元素时,需要考虑格式化其显示效果,否则显示页面将混乱不堪。对于数据的访问,需自实现遍历代码来完成。然而,这些格式化操作和数据访问操作我们可以使用struts2标签库来完成。这样可以简化开发过程。Struts标签库,值得去尝试。
1.struts标签可归纳为:
1)UI标签:生成HTML标签
表单标签: 生成表单元素,如:form, textfield, select
非表单标签:生成无关表单的元素,如:a, div, tabbedPanel
2)非UI标签:进行数据访问,逻辑控制
控制标签:分支,循环等流程控制
数据标签:输出数据,完成国际化等
3)Ajax标签:用于Ajax支持的标签
2.在JSP页面中导入struts2标签库
<@ taglib prefix="s" uri="/struts-tags"%>
然后就可以在页面中使用标签库了,使用方式:使用“s”作为标签的前缀。
如:
1)表单标签:<s:textfield name="username"/>
2)控制标签:<s:if test="表达式"></s:if>
3)数据标签:<s:date name="#now" format="yyyy-MM-dd"/>
--->前往了解struts2标签
数据访问中,对于简单的Action属性值(如:基本类型,String),可以在页面中使用标签间接访问到(间接?想象有某个容器,Action将数据置于其中,而页面从容器中取出数据),而对于较为复杂的属性值(如:数组,集合,对象),则需使用表达式来获取,Struts2使用的是OGNL表达式。
3.使用OGNL表达式语言
struts2定义了一个顶级对象:Stack Context,可以想象其为一个用于存储数据的容器。需要从其中获取数据。
其中包含:
1)一个根对象:访问根对象可以省略#和对象名
ValueStack
2)五个命名对象:访问命名对象需使用#对象名
parammeters 访问HTTP的参数,#parammeters.name = getParameter("name");
request 访问HttpServletRequest的属性,#request.name = getAttribute("name");
session 访问HttpSession的属性,#session.name = getAttribute("name");
application 访问ServletContext的属性,#application .name = getAttribute("name");
attr 依次访问page, request, session, application 范围
Action实例创建自动保存-->ValueStack,因此访问Action属性可省略#和对象名。开发阶段,可使用标签<s:debug/>形成链接,用以查看对象的属性等。
--->前往了解OGNL表达式