Struts 2.0算是学完了,自己也总结了很多的内容,包括和Struts 1.x的比较等等,但是我个人并不觉得Strts 2.0如何的难学,李老师讲的时候也跟我们说,会了Struts 2.0就相当于连webwork也学习会了,不知道为什么非要将这两个内容分开,听说webwork的配置要比Struts 2.0 多一点,也许随着发展就剩下struts 2.0了吧,呵呵
四、Struts2.0标签
注意OGNL表达式的配合使用
1、设置属性s:set
功能与Struts1.2的bean:define相同
(1)复制属性
<%
request.setAttribute("mldn","lin");
%>
<s:set name="temp" value="#request.mldn"></s:set>
${temp }
|
注意#
value中需要使用OGNL表达式来取得属性范围中的属性值,如果属性值保存在4种属性范围中,需要通过 #范围名称.属性 来取得,如果要取得该属性下的某一个属性值,可以继续使用 “. ”的方式
(2)新建属性
<s:set name="temp1" value="'mumu'"></s:set>
${temp1 }
|
value中只能是基本数据类型:int、String等
s:set标签还有scope属性用来保存所设置或复制的属性的属性范围,如果不进行手工配置,默认保存在page范围内。
2、显示属性s:property
功能与bean:write类似,但不能格式化数据
<%
request.setAttribute("mldn","yan");
%>
<s:property value="#request.mldn" default="cly"/>
|
可以通过default设置该属性为null时的默认值,注意OGNL的使用
注意:当使用Struts2.0的Action中的getter 方法传递数据时,可以不加入#属性范围
<%@ page language="java" pageEncoding="GBK"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>登陆成功页</title>
</head>
<body>
<br>
<a href="login!quit.action">退出登录</a>
<center>
<br>
欢迎<s:property value="userid"/>登陆成功!
</center>
</body>
</html>
|
3、格式化显示日期s:date
与bean:write中格式化日期的功能相同
<s:date name="user.birthday" format="yyyy年MM月dd日"/>
|
4、判断标签s:if…s:elseif…s:else
<s:if test="user == null">
为空
</s:if>
<s:elseif test="user.userid == 'MLDN'">
符合条件
</s:elseif>
<s:else>
不符合条件
</s:else>
|
在test中如果要使用非getter方法设置的属性,也需要OGNL语法的支持,如果不加引号,表示使用属性,加入’’表示按照字符串处理,test中的返回值必须为boolean
5、迭代s:iterator
(1)集合(元素为对象)
循环数组或集合数据
<s:iterator value="all">
${userid } -- ${age } -- ${birthday } <br>
</s:iterator>
|
在使用Struts2.0的迭代标签时,不需要使用id定义临时的属性,Struts2.0会将循环的pojo对象的所有属性保存在page范围内,可以直接通过属性名显示该属性(EL)
(2)集合(元素为基本数据类型)
当集合中保存的属性并不是一个pojo对象,而是一个基本类型时(String)
<s:iterator value="all">
<s:property/> <br>
</s:iterator>
|
这里可以使用s:property将集合中的内容直接显示出来。
(3)Map对象
如果使用的为Map类型
<!-- value表示要迭代的属性(OGNL) -->
<s:iterator value="all">
${key } -- ${value } <br>
</s:iterator>
|
(4)迭代索引
如果要完成单双行变色,在Struts1.2中使用indexId进行处理,在struts2中可以通过status进行处理
使用status可以通过以下属性取得数据:
status.index,取得索引号:从0开始
status.count:取得当前循环次数:从1开始
status.odd:判断当前是否为单数行,如果是,则返回true,否则返回false
status.even:判断是否为双数行
status.first:判断是否为循环的第一行
status.last:判断是否为循环的最后一行
<!-- value表示要迭代的属性(OGNL) -->
<s:iterator value="all" status="status">
<font color="${status.odd?"red":"green" }"> ${key } -- ${value }</font> <br>
</s:iterator>
|
五、Struts2.0国际化处理
Struts2.0中通过s:i18n和s:text来完成国际化功能
注意:
(1)一种语言得建立一个资源文件。
(2)页面信息的资源文件可以建立在src下,命名为***_语言名称_区域名称.properties
文件名可以自行定义,但这几个不同语言版本的资源文件的名称必须一致
范例:单个页面的国际化处理
说明:每个页面的国际化处理,涉及到拦截器
修改项目:LinStrutsTwoDemo的首页,采用国际化处理
1、建立不同语言的资源文件
这里就叫“message_en_US.properties”和“message_zh _CN.properties”,在src下
文件message_en_US.properties:
msg.index.page.title=Index
msg.index.page.userid=UserID
msg.index.page.password=Password
msg.index.page.submit=Login
msg.index.page.reset=Reset
msg.index.page.selectLanguage=Please select language
msg.index.page.chinese=Chinese
msg.index.page.english=English
|
文件message_zh _CN.properties:
msg.index.page.title=\u9996\u9875</span
分享到:
Global site tag (gtag.js) - Google Analytics
|
相关推荐
Struts2.0还深度集成了Spring框架,利用Spring的IOC(Inversion of Control)和DI(Dependency Injection)特性进行依赖注入,这使得Action类和其他组件之间的依赖关系可以更清晰地管理,提高了代码的可读性和可测试...
Struts2.0的API还包含许多其他重要组件,如ValueStack,它是一个对象容器,用于存储Action上下文中的数据;OGNL(Object-Graph Navigation Language)则是Struts2中的表达式语言,用于在视图和模型之间传递数据。...
Struts2.0是一款强大的Java Web框架,它在MVC(Model-View-Controller)设计模式的基础上,提供了灵活且强大的架构来构建企业级的Web应用程序。这个“Struts2.0 Jar包”包含了所有必要的库文件,使得开发者可以便捷...
它并非Struts 1的直接升级,而是源自WebWork框架,提供了更强大的特性和灵活性。Struts 2的核心是Action,它是业务逻辑处理的主要组件,而且在设计上是线程安全的。 在开始开发Struts 2应用之前,首先需要从Apache...
Struts2.0的核心特性包括: 1. **Action和结果类型**:Struts2.0中的Action类是处理用户请求的核心,每个Action对应一个业务逻辑。Action执行完毕后,会返回一个Result,定义了如何处理操作的结果,如转发到某个JSP...
Struts2.0的核心特性包括: 1. **Action与结果**:Struts2.0中的Action类是处理用户请求的主要对象,每个Action对应一个业务逻辑。执行完成后,会返回一个结果,这个结果可以是另一个Action、JSP页面或者任何其他...
在Struts 2.0中,你可以看到许多Struts 1.0的改进,以及WebWork框架引入的新特性,这些改进使得Struts 2.0在处理复杂业务逻辑和用户交互时表现得更为出色。 1. **Action和Result**: 在Struts 2.0中,Action类是处理...
Struts2.0是Java Web开发中一个非常重要的框架,它是Apache软件基金会的Jakarta项目下的一个开源产品,主要用于构建MVC(Model-View-Controller)模式的应用程序。本入门案例将带你逐步了解如何使用Struts2.0来创建...
Struts2.0 是一个非常流行的Java Web框架,它基于MVC(Model-View-Controller)设计模式,用于构建高效、可维护的企业级应用程序。这个压缩包包含了Struts2.0的核心jar文件以及可能的源代码,使得开发者可以直接查看...
拦截器是Struts2.0框架中一个非常灵活且强大的特性,它可以在Action执行前后进行拦截,执行特定的逻辑,如权限检查、日志记录等。Struts2.0内置了多种拦截器,同时支持自定义拦截器,使得开发者可以根据应用需求定制...
拦截器是Struts 2.0的一个核心特性,它们在Action执行前后执行,可以用于日志记录、权限验证、数据校验等。开发者可以通过自定义拦截器扩展框架功能。 6. **OGNL(Object-Graph Navigation Language)** Struts ...
#### 二、Struts2.0 的主要特性 1. **MVC 设计模式**:Struts2.0 基于 MVC(Model-View-Controller)设计模式,将业务逻辑与界面显示分离,提高了代码的可维护性和可扩展性。 2. **拦截器机制**:这是 Struts2.0 的...
总结,学习Struts2.0不仅需要掌握其基本概念和配置,还需要理解拦截器机制,熟练使用Struts2.0提供的标签库,以及如何与其他框架如Spring进行集成。通过不断地实践和项目经验积累,才能真正掌握这个强大的Web开发...
这个“struts2.0教程合集”包含了丰富的学习资源,帮助初学者和进阶者深入理解和掌握Struts2.0的核心概念、特性以及实践应用。 首先,"Struts+2+(中文PDF版).rar"很可能是Struts2.0的基础教程,以中文形式详细介绍...
这个压缩包包含的是Struts2.0的核心库和其他必要的JAR文件,这些文件对于创建一个基于Struts2.0的项目至关重要。以下是对这些JAR包及其在Struts2.0框架中的作用的详细说明: 1. **struts2-core.jar**:这是Struts2...
通过深入研究这个Struts2.0的源代码,你可以更好地理解其工作原理,学习如何有效地利用它的特性来构建高效、健壮的Web应用。同时,这也有助于你了解如何将Struts2与其他技术(如Spring、Hibernate等)整合,构建更...
在这个"都市供求信息系统"项目中,我们能够深入理解并实践Struts2.0的核心特性和功能。 1. **MVC架构**:Struts2.0遵循MVC(Model-View-Controller)设计模式,将业务逻辑、数据展示和用户交互分离,提高了代码的可...
**标题与描述解读:** "Struts2.0学习教程PDF"这一标题明确指向了Struts2.0框架的学习资料,而描述中的“Struts 2.0 学习教程 中文pdf版 图例讲解”则进一步强调了资料的中文语言特性以及通过图例进行深入浅出的讲解...