struts(2)

本文介绍了Struts框架中使用的两种类型的标签:Struts自定义标签和JSTL标签。这两种标签都用于视图层,帮助简化页面展示逻辑。文章还详细解释了如何创建和使用自定义标签库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

         我是通过尚学堂的录像来学struts。在录像中,做了一个简单的登录练习之后,初步接触了一下struts之后,就开始讲标签。

         个人觉得,从严格的意义上来说,标签应该不输与struts的。因为struts的目的是做好了MVC框架中的C(控制)。而标签某种意义上来说,应该算作是V(视图)的作用范围,这一部分应该是javascriptHTML。来负责比较稳妥。而struts最好只要做好题外话。当然这是题外话。

         录像中教授的标签为两类,一类是struts架构自己提供的。另一类怎是sun公司提供的JSTL标签的库。前者比较适合用于Struts的架构,而后者呢,通用性比较好。

         无论哪种,在使用时,都需要引入相应的标签库(EL表达式不用)。这也就就是从另一个方面说明了。两者其实没有任何本质区别。只是不同的地方提供的不同标准而已。而标签的存在的目的,主要是为了遵循网页设计人员习惯。

         任何标签几乎都是标签开头。具体的是看你引入标签库时候的prefix属性,然后是具体的干什么,比方说“write”之类的。然后就是属性,这里一般都是主要的部分。然后就是值。具体哪个是哪个,还是在实际操作中慢慢体会来的实在。

         为了特别的就是EL表达式。基本格式是${ a }。这样可以直接输出相关的值。这个类似于jsp中的<%=a%>。其找寻scope的顺序是page—>request—>session—>application

这里涉及了一个概念,叫做导航。最简单的就是,你把一个值a,放入了request中,那么你想要服务器直接找request中去找,那么就输出${request.a}。同样的,如果a是一个javabean,要输出一个成员b,那么就是${a.b}。从原理上来说说a中有个getB方法,${a.b}这个也能行的通。

看到这里,大家估计也有点概念了。所谓的导航,从本质上来说,只是通过javabean的规范一层一层往下面挖。

最后,自定义标签库。具体操作方法就是

1、定义类和方法(方法必须是public static

2、编写自定义tld文件,并且将此文件放到WEB-INFWEB-INF任意子目录下

3、在jsp中采用taglib指令引入自定义函数库

4、采用 前缀+冒号+函数名 调用即可

Ltd文件写法

自定义的TLD文件

  1. <?xml version="1.0"
  2. encoding="UTF-8" ?>
  3. <taglib xmlns="http://java.sun.com/xml/ns/j2ee"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
  6. version="2.0">
  7. <description>my functions
  8. library</description>
  9. <display-name>my
  10. functions</display-name>
  11. <tlib-version>1.0</tlib-version>
  12. <short-name>my</short-name>
  13. <uri>http://www.bjsxt.com/functions</uri>
  14. <function>
  15. <name>sayHello</name>
  16. <function-class>com.bjsxt.struts.MyFunctions</function-class>
  17. <function-signature>java.lang.String
  18. sayHello(java.lang.String)</function-signature>
  19. </function>
  20. </taglib>

以上是尚学堂的王勇老师的总结。我觉得讲的已经很清楚了。我也难以写的更详细,这里就借鉴一下了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值