struts2 标签库
tag-reference.html 就是 struts2标签规范
一、 通用标签库 的学习
<s:property> 解析ognl表达式,设置默认值,设置内容是否HTML转义
<s:set> 向四个数据范围保存数据
<s:iterator> 遍历值栈中数据
<s:if> <s:elseif> <s:else> 进行条件判断 -------- elseif可以有多个
<s:url> 进行URL重写(追踪Session) ,结合s:param进行参数编码
<s:url action="download" namespace="/" var="myurl">
<s:param name="filename" value="%{'MIME协议简介.txt'}"></s:param>
</s:url>
<s:property value="#myurl"/>
<s:a> 对一个链接 进行参数编码
<s:a action="download" namespace="/" >下载MIME协议简介.txt
<s:param name="filename" value="%{'MIME协议简介.txt'}"></s:param>
</s:a>
OGNL 了解部分 : 支持赋值操作和表达式串联 、 操作集合对象
1) 在值栈中保存一个对象
<s:property value="price=1000,name='冰箱',getPrice()"/> 自动查找值栈中price
和name
属性 为其赋值
2) ognl操作集合
<s:property value="products[0].name"/> 访问集合第一个元素name属性
<s:property value="map['name']"/> 访问map中key为name的值
{} 直接构造List元素、
#{}直接构造
Map元素
<s:iterator value="{'aaa','bbb'}" var="s">
<s:property value="#s"/>
</s:iterator>
<s:iterator value="#{'ccc':'111','ddd':'222' }" var="entry">
<s:property value="#entry.key"/>
</s:iterator>
二、 UI标签库的学习 (Form标签)
使用struts2 form标签 好处 : 支持数据回显 , 布局排班(基于Freemarker模板定义 )
1、struts2 表单标签 value属性。 必须写%{}
进行设值
使用struts2表单标签前, 必须配置StrutsPrepareAndExecuteFilter
The Struts dispatcher cannot be found. This is usually caused by using Struts tags without the associated filter. Struts tags are only usable when the request has passed through its servlet filter, which initializes the Struts dispatcher needed
for this tag
<s:form> 表单标签
<s:form action="regist" namespace="/" method="post" theme="xhtml"> --- theme="xhtml"默认布局样式
<s:textfield> 生成 <input type="text" >
<s:password > 生成 <input type="password" >
<s:submit type="submit" value="注册"/>生成
<input type="submit" >
<s:reset type="reset" value="重置" />生成 <input type="reset" >
<s:textarea> 生成 <textarea>多行文本框
<s:checkboxlist> 生成一组checkbox
2、使用ognl构造Map
(看到值和提交值 不同时)
<s:checkboxlist list="#{'sport':'体育','read':'读书','music':'音乐'
}" name="hobby"></s:checkboxlist>
<s:radio> 生成一组radio
3、使用 ognl构造List (看到内容和提交值 相同时)
<s:radio list="{'男','女'}" name="gender"></s:radio>
<s:select> 生成一个<select>
<s:select list="{'北京','上海','南京','广州'}"
name="city"></s:select>
4、struts2 开发 密码框 默认不回显
<s:password name="password" id="password" showPassword="true"/>
5、 页面元素主题设置
default.properties ---- struts.ui.theme=xhtml
设置struts2 页面元素使用默认主题
struts.ui.templateSuffix=ftl
默认模板引擎 Freemarker
修改主题
方式一 :<s:textfield name="username" label="用户名“theme="simple"></s:textfield>
只对当前元素有效
方式二 :<s:form action="" method="post" namespace="/ui“ theme="simple">对form中所有元素有效
方式三 : struts.xml
<constant name="struts.ui.theme" value="simple"></constant> 修改默认主题样式,页面所有元素都有效
优先级 :方式一 >
方式二 >方式三
三、防止表单重复提交原理
表单防止重复提交
表单重复提交 危害:刷票、
重复注册、带来服务器访问压力(拒绝服务)
1、 在jsp通过
<s:token />生成令牌号
生成表单隐藏域
将令牌号保存到Session
2、 通过struts2提供
tokenIntercetor拦截器 完成请求中令牌号 和
session中令牌号 比较
<interceptor name="token" class="org.apache.struts2.interceptor.TokenInterceptor"/>
<action name="token" class="cn.itcast.struts2.TokenAction">
<result>/index.jsp</result>
<!-- 重新定义拦截器 -->
<interceptor-ref name="defaultStack"></interceptor-ref>
<interceptor-ref name="token"></interceptor-ref>
</action>
3、 当表单重复提交时,token拦截器自动跳转result name="invalid.token"
通过 <s:actionError/>
显示错误信息
覆盖重复提交信息 struts.messages.invalid.token=您已经重复提交表单,请刷新后重试
四、Struts2 内置json插件
知识点 :struts2的
Ajax开发
Ajax开发客户端 和 服务器交互数据格式 --------------- json
json 是最轻量级,体积最小
服务器将程序处理结果,转换为json格式发送给 客户端
json-lib 、 flexjson 工具类库
struts2-json-plugin-2.3.7.jar
案例一:
输入用户名,鼠标点击密码(触发用户名元素离焦事件),使用Ajax 将用户名发送到服务器 判断是否存在
jquery 1.4 、 1.6新特性比较多 (企业主流
1.4)
使用struts2 json插件
要点1 :
<package> extends 继承json-default
要点2 :
<result> type 类型写json
struts2 json插件 ,默认将值栈root顶端对象 所有属性返回(get方法)
不想将company属性返回 ,在get方法上@JSON(serialize=false)
案例二 :服务器将商品对象 List列表返回
如果Action 实现ModelDriven,
model对象就是值栈栈顶对象,struts2 json插件默认 将model返回
通过设置root属性,修改插件返回 根对象
* <param name="root">action</param> 将Action作为根对象返回
只想要每个商品的 name
属性
方案一: 在pnum、price的get方法上
添加@JSON(serialize=false) =========只要@JSON注解,属性将永远不能参与json返回
方案二: 设置 includeProperties属性
<param name="includeProperties">products\[\d+\]\.name</param>
分享到:
相关推荐
### Struts2核心知识点解析 #### 一、Struts2框架概述 - **定义与特点**:Struts2是一款基于MVC(Model-View-Controller)设计模式的...希望本教程能帮助大家更好地理解和运用Struts2,为自己的项目带来更多的价值。
Struts 2是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,由Apache...提供的"struts 2资料"压缩包文件可能包含了相关的教程文档、示例代码和其他学习资源,可以作为学习过程中重要的参考资料。
struts2教程.ppt struts2教程.ppt struts2教程.ppt struts2教程.ppt struts2教程.ppt struts2教程.ppt
Struts2教程是一个非常有价值的资源,它可以帮助我们深入了解和学习这个强大的MVC框架。Struts2作为Apache软件基金会的一个项目,是Java Web开发中的一个重要工具,尤其在企业级应用中广泛应用。相较于其前身Struts1...
Struts2是一个基于MVC(Model-View-Controller)设计模式的Java web应用程序框架,它在Struts1的基础上进行了很多改进和...通过深入学习和实践Struts2教程,你可以更好地掌握web应用程序的开发技巧,提升项目开发效率。
Max的Struts2教程可能是一份详尽的指南,帮助初学者和经验丰富的开发者更好地理解和使用Struts2框架。 在Struts2框架中,有几个核心概念和组件值得深入探讨: 1. **Action类**:Action类是业务逻辑的载体,处理...
Struts2是一个基于MVC(Model-View-Controller)设计模式的开源Java Web框架...通过详尽的Struts2教程学习,不仅可以提升你的Java Web开发技能,还能帮助你理解MVC模式和其他相关技术,为未来的职业发展奠定坚实基础。
Struts2 Struts2 Struts2 教程 1 1 1 :第一个 Struts2 Struts2 Struts2 程序 在本系列教程中我们将学习到 Struts2 的各种技术。在本教程中使用的工具和程序库的版本 如下: 开发工具: MyEclipse6 Web 服务器: ...
Struts2是一个强大的Java Web...总的来说,传智播客的Struts2教程将帮助你深入理解这一框架,提升你的Java Web开发技能。通过观看视频教程,结合实际的项目练习,你将能够熟练地运用Struts2构建高效稳定的企业应用。
总结,Struts2教程和API文档将帮助你全面理解Struts2框架的工作原理,掌握如何配置和使用Struts2来构建高效、可维护的Java Web应用程序。通过实践和学习,你将能够利用Struts2的强大功能来满足各种Web开发需求。
本教程将深入讲解Struts2的基础知识,帮助初学者快速掌握这一强大的框架。 一、Struts2的准备工作 1. **安装与实例**: 在开始使用Struts2之前,需要下载Struts2的发行包,例如`struts-2.1.6-all.zip`。解压缩后...
Struts 2 教程.
最后,“10 crud.pdf”可能是一个综合案例,演示如何使用Struts2实现基本的创建(Create)、读取(Read)、更新(Update)和删除(Delete)操作,这部分通常涉及到数据库操作和JDBC的集成。 总的来说,这个Struts2...
在本超详细Struts2教程中,你将逐步学习并理解Struts2的核心概念和实践技巧。教程分为6个部分,从基础到深入,分别是day01、day02、day03、day04、day05和day06,这表明教程按照学习路径进行组织,帮助你在一周内...
在"struts2教程源代码"中,你可以找到一系列用于学习和实践Struts2框架的实例。这些源代码是针对初学者设计的,旨在帮助理解如何在实际应用中运用Struts2的核心概念和特性。"strut2课程源代码第一天及说明"可能包含...
### Struts2框架详解:构建高效MVC架构的利器 #### 概述 Struts2是Struts框架的下一代版本,作为模型-视图-控制器(Model-View-Controller,MVC)架构的一种实现,其目标是通过减少XML配置、采用智能约定以及提供...
本教程旨在帮助开发者深入理解和掌握Struts2的核心概念、工作原理以及实际应用。 一、Struts2基础 1. **MVC模式**:Struts2遵循MVC设计模式,它将业务逻辑(Model)、用户界面(View)和控制流程(Controller)...
标题:“Struts2教程框架” 知识点: Struts2框架是一个Web应用框架,它是作为MVC(模型-视图-控制器)架构模式的实现,被广泛应用于Java Web开发中。尽管被称为全新的框架,Struts2实际上是在WebWork的基础上发展...
本教程将深入探讨Struts1和Struts2两个版本的核心概念、框架结构以及它们在实际开发中的应用。 **Struts1详解:** Struts1是最早的版本,它在2001年发布,是Web应用开发领域的一个里程碑。Struts1的主要特点是将...