Struts 标签库
· Bean 标记:用来在 JSP 页面管理 bean , Struts-bean.tld
·逻辑 标记:用来在 JSP 页中控制流程, Struts-logic.tld
· HTML 标记:用来生成 HTML 标记,在表单中显示数据,使用会话 ID 对 URL 进行编程 struts-html.tid
· tiles 标记:使用动态模块构造普通格式的页面 struts-tiles.tld
第一步:找到 Struts 标记库导入的 jar 文件包,找到配置文件夹 META-INF ,打开找到 tld 文件夹
第二步:拷贝 < uri ></ uri > 中的地址信息
< uri > http://struts.apache.org/tags-bean </ uri > |
第三步:创建 JSP 页面,在页面开头如下
<%@ page language = "java" import = "java.util.*" pageEncoding = "GB18030" %> <%@ taglib uri = "http://struts.apache.org/tags-bean" prefix = "bean" %> |
Taglib :使用的标签类库名称(别人的标记库)
Uri :标记库的绝对地址(说明标记库在哪里)
Prefix :表明该标记库在当前页面的使用前缀
第四步:使用
1、 先定义一个 bean
<% String username = "Tom" ; request.setAttribute( "username" ,username); %> |
2、 在 <body> 使用 <bean> 标签
< bean:define id = "username1" name = "username" > |
bean:define 定义一个 bean 标签
id = "username1" : bean 标签的名称为 username1
name = "username" : 获取先前属性中放入的 bean
3 、 bean 的输出
< bean:write name = "user n ame1" /> |
bean:write 此 bean 标签 为输出 bean 标签
name = "username1" 输出名称为 username1 的 Bean 标签
备注:下面为页面输出方式
定义:从有的变量或者变量的属性定义一个新的变量。
用法:
Search:from where-----scope;who ----name;which------property
Define(evaluate):the name of the variable newly created ----------id,which is required
Save: to where ---toScope
实例:
< bean:define id = "username2" scope = "request" name = "user" property = "username" toScope = "session" ></ bean:define > |
定义一个 Bean 的名字叫 username2
这个是从 request 作用范围( scope )找 user 这个类( name )中的 username 这个属性( property )的值赋给 这个叫 username2 的这个 Bean
然后在把这个 叫 username2 的 bean 放到 session 作用范围中( toScope )
注 : 若将 scope = "request" 去掉怎么输出的时 会按照相应的变量名逐级查找
用法备注
定义 类 user ;
User user = new User(); user.setUsername( "Tom" ); request.setAttribute( "user" , user); System.out.println(user.getUsername()); |
Bean 的定义( 1 ):
< bean:define id = "username2" scope = "request" name = "user" property = "username" toScope = "session" ></ bean:define > |
Bean:write
得到 uesr 类中 username 属性的值;
< bean:write name = "username2" /> 或者: ${applicationScope.username2 } |
Bean 的定义( 2 ):
< bean:define id = "username2" scope = "request" name = "user" toScope = "session" ></ bean:define > |
Bean:write
得到 uesr 类中 username 属性的值;
< bean:write name = "username2" property = "username" /> ${applicationScope.username2.username } |
输出结果:
username2: Tom 或者: Tom |
备注:
1 、
若在 <bean : deifne> 标签中定义了 property 属性 ,使用 <bean : write> 标签 是就可以直接输出类中的属性值,反之 <bean : deifne> 没有定义 property 属性,则使用 <bean : write> 标签时 应定义 property 属性 限定答应出的属性。
若 <bean : deifne> 和 <bean : write> 都没有限定 property 属性,则输出结果如下:
username2: com.tag.User@cf3539 |
2 、
${applicationScope.username2.username } |
输出结果:
Tom |
${applicationScope.username2 } |
输出结果:
com.tag.User@cf3539 |