### Struts标记库详解 #### 一、Struts标记库概述 Struts标记库是用于JSP页面开发的一组自定义标记,它们被设计来简化Web应用的开发过程,提高代码的可读性和可维护性。Struts标记库主要包括以下四类: 1. **Bean标记**:用于管理JSP页面中的bean。 2. **逻辑标记**:用于控制JSP页面的流程。 3. **HTML标记**:用于生成HTML元素,如表单数据的显示以及URL的会话ID编程。 4. **模板标记**:用于构建具有动态模板的页面。 #### 二、Bean标记详解 Bean标记库提供了一系列的功能来帮助开发者在JSP页面中处理JavaBean,这包括定义新bean、访问bean及其属性等操作。 - **标记定义**:这些标记被定义在一个名为`struts-bean.tld`的文件中,该文件作为标记库描述符(TLD)指定了Bean标记库中各标记的行为。 - **子类别**: - **创建和复制bean的标记** - **脚本变量定义标记** - **bean翻译标记** - **消息国际化标记** ##### 2.1 Bean复制标记 **<bean:define>** 标记允许开发者定义新的字符串常量、复制现有的bean或者从现有bean复制属性以创建新的bean。 - **属性**: - **id**:新定义的bean的脚本变量名称,必须设置。 - **type**:定义引入脚本变量的类。 - **value**:为id属性定义的脚本变量分配的新对象。 - **name**:目标bean的名称,如果value属性没有设置,则此属性必须设置。 - **propertyName**:bean的属性名称,用来定义新的bean。 - **scope**:源bean的作用域,如果未设置则搜索范围从页作用域到应用程序作用域。 - **toScope**:目标bean的作用域,默认值是页作用域。 **示例**: ```xml <!-- 定义一个bean --> <bean:define id="test" value="this is a test"/> <!-- 将源bean从页作用域复制到请求作用域中的另一个bean --> <bean:define id="targetBean" name="sourceBean" scope="page" toScope="request"/> ``` ##### 2.2 定义脚本变量的标记 通过这些标记可以从多种资源(如cookie、请求参数、HTTP头部等)中定义和生成脚本变量。 - **<bean:cookie>** - **<bean:header>** - **<bean:parameter>** **属性**: - **id**:脚本变量和要定义的页作用域属性的名称。 - **name**:cookie/标头/参数的名称。 - **multiple**:如果设置为true,则所有匹配的cookie将被积累并存储到一个数组类型的bean中;如果不设置,则只返回第一个匹配cookie的值。 - **value**:如果没有匹配的cookie或数值,则返回此属性指定的默认值。 **示例**: ```xml <!-- 定义一个脚本变量myCookie,其值来自于名为userName的cookie --> <bean:cookie id="myCookie" name="userName"/> <!-- 定义一个脚本变量myHeader,其值来自于名为Accept-Language的HTTP头部 --> <bean:header id="myHeader" name="Accept-Language"/> <!-- 定义一个脚本变量myParameter,其值来自于名为myParameter的请求参数 --> <bean:parameter id="myParameter" name="myParameter"/> ``` - **<bean:include>**:此标记将从一个资源获取响应,并将其存储到一个页作用域的bean中。资源可以是一个JSP页面、ActionForward或外部URL。 **属性**: - **id**:脚本变量和要定义的页作用域属性的名称。 - **page**:一个内部资源或ActionForward。 - **href**:要包含的资源的完整URL。 **示例**: ```xml <!-- 定义一个脚本变量myInclude,其值来自于资源MyJsp?x=1 --> <bean:include id="myInclude" page="MyJsp?x=1"/> ``` - **<bean:resource>**:此标记用于从Web应用中检索资源,并引入一个脚本变量和InputStream或字符串类型的页作用域属性。 **属性**: - **id**:脚本变量和要定义的页作用域属性的名称。 - **location**:要检索的资源的位置。 - **inputStream**:如果设置为true,则返回InputStream类型的bean;默认情况下返回字符串类型的bean。 - **cache**:如果设置为true,则资源将在整个会话期间缓存;默认情况下每次请求都重新加载资源。 #### 三、总结 Struts标记库中的Bean标记库为开发者提供了丰富的功能,使得在JSP页面中管理和操作JavaBean变得更加简单高效。通过使用这些标记,可以有效地减少代码量,提高程序的可维护性。此外,这些标记还支持国际化和本地化需求,进一步增强了应用的灵活性。掌握并熟练运用这些标记对于从事基于Struts框架的Web开发是非常有益的。
剩余11页未读,继续阅读
- 粉丝: 74
- 资源: 11
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 银行客户管理系统代码--论文pf-springboot毕业项目,适合计算机毕-设、实训项目、大作业学习.zip
- 车辆主动避撞时,横向紧急转向避撞和纵向紧急制动避撞,临界纵向安全距离对比,可根据此安全距离划分进行模式划分,什么情况下采用紧急制动避撞,什么情况下采用紧急转向避撞,横向紧急转向避撞安全距离根据五次多项
- 闲置图书分享boot--论文pf-springboot毕业项目,适合计算机毕-设、实训项目、大作业学习.zip
- 集团门户网站--论文pf-springboot毕业项目,适合计算机毕-设、实训项目、大作业学习.zip
- 陕西理工大学奖学金评定管理系统的开发boot-springboot毕业项目,适合计算机毕-设、实训项目、大作业学习.zip
- 项目申报管理系统pf-springboot毕业项目,适合计算机毕-设、实训项目、大作业学习.zip
- 兴顺物流管理系统pf-springboot毕业项目,适合计算机毕-设、实训项目、大作业学习.zip
- 基于MVC模式的红色革命文物征集管理系统的设计与实现--论文pf-springboot毕业项目,适合计算机毕-设、实训项目、大作业学习.zip
- comsol 传热传质 表面对表面辐射 流固耦合 压电耦合 绝缘子仿真 电场磁场传热耦合
- 可信捐赠系统的设计与开发--论文pf-springboot毕业项目,适合计算机毕-设、实训项目、大作业学习.zip
- Python爬虫+火车票分析助手
- 农事管理系统--论文pf-springboot毕业项目,适合计算机毕-设、实训项目、大作业学习.zip
- 农产品智慧物流系统pf-springboot毕业项目,适合计算机毕-设、实训项目、大作业学习.zip
- 协同过滤电影推荐系统--论文pf-springboot毕业项目,适合计算机毕-设、实训项目、大作业学习.zip
- 售楼管理系统pf-springboot毕业项目,适合计算机毕-设、实训项目、大作业学习.zip
- 图书管理系统900pf-springboot毕业项目,适合计算机毕-设、实训项目、大作业学习.zip