struts1的标签库有以下几大类:
- Bean Tags:该标签库包含的标签可以用来创建bean、访问bean和访问bean的属性。同时提供了依据cookies、headers和parameters的值创建相关bean的能力。
- HTML Tags:该标签库包含的标签可以用来创建Struts输入表单。
- Logic Tags:该标签库包含的标签可以用来进行逻辑判断、集合迭代和流程控制。
- Nested Tags:该标签库建立在前三个标签库的基础上,具有前三个标签库的所有功能,只是允许标签间的嵌套。
- Tiles Tags:该标签库包含的标签可以用来创建tiles样式的页面。
在java ee规范中,存在三种标签
1.自定义规范
2.jstl标签
3.struts标签struts框架推荐使用struts标签来完成jsp页面,但是实际上两种标签可以相互补充。struts标签可以提高开发的效率和规范
说明:*.tld文件叫标签描述文件(tld=tag library description)使用标签前要导入标签库,如图:
在标签描述文件找到对应的uri导入
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
1.HTML标签
这类标签实际上就是普通的html标签,struts设计者主要是为了和struts框架统一,对普通的html标签做了一个封装,本质是html标签。
<html:form action="/register.do" method="post"> 请输入用户名:<html:text property="username"></html:text><br/> 请输入密码:<html:password property="password"></html:password><br/> 请输入电子邮箱:<html:text property="email"></html:text><br/> 请输入电话号码:<html:text property="phone"></html:text> <html:submit value="注册"></html:submit> </html:form>
冷门:<html:base>标签作用:当页面地址为#的a标签被点击时,会跳到base ref指定的地址
重点:struts的标签如果涉及到输入信息,struts框架认为你的表单要和一个表单类对应,而且应当放到一个<html:form>(表单)中,不然会运行时错误。
解决方法:新建一个FormBean,用表单把输入的标签包起来,表单action要能够匹配到FormBean,如果有一个属性和表单标签不匹配就会报错。
struts标签易错点:
1.表单必须要和FormBean对应上
2.涉及到输入的标签都要放到表单里
在html标签库中form标签是最重要的标签,它和struts框架紧密结合,form标签和一个ActionForm对应,
当form的各个字段与ActionForm的属性匹配时,那么当客户端把Form提交后,
Struts框架将保存用户的输入到对应ActionForm中,这样就完成了标签与组件的交互工作。
2.bean标签库
bean标签库为访问Bean和它的属性提供了方便的机制:
1.该标签库包含的标签可以用来创建bean、访问bean和访问bean的属性。2.提供了依据cookies、headers和parameters的值创建相关bean的能力。
常用标签:
1.<bean:write name="abc" />
从域对象中取数据,类似el表达式的效果
2.<bean:message key="" arg0="" />
该标签通常和资源文件一起使用
面试题:请解释javabean属性的含义
误区:不能把属性理解为属性变量的名称,而是它的set和get方法的名称。3.<bean:cookie id="唯一标识符" name="存在的cookie属性名"/>
3.logic标签库
主要用于管理和条件相关的
输出,对某些对象进行迭代输出,和流程
管理。
迭代标签<login:iterate id="自定义变量" name="要遍历的集合">
</logic:iterate>
常和bean:write共同使用,也可以和EL
表达式一起使用小小规定(使用标签的原则):
jstl>el>struts
条件标签
<login:empty name="ee">
</login:empty>