strut2的学习笔记
struts2的使用
1:导入相应的jar包
2:在web.xml中加上下面的配置
<filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern>
</filter-mapping>
这样你的所有请求就会交给struts框架来处理了
3:你的相应action类要继承ActionSupport
4:在struts.xml配置相应的action
struts.xml中的一些配置
<!-- 开发的时候配置这个有利于调试程序-->
<constant name="struts.devMode" value="true" />
<!-- 浏览器是否进行缓存处理,建议开发阶段用false -->
<constant name="struts.serve.static.browserCache" value="false"/>
<!-- 修改配置文件是否自动加载无需重启服务器 建议开发阶段用true -->
<constant name="struts.configuration.xml.reload" value="true"/>
<!--请求url后缀默认为 struts.action.extension=action,,
那么你地址后面可以加action或者什么都不加
-->
<!-- 请求url后缀的必须为action或do -->
<constant name="struts.action.extension" value="action,do"/>
<!-- 有这句namespace和action中的name值之间不允许插入其他值 -->
<constant name="struts.mapper.alwaysSelectFullNamespace" value="true"/>
在struts.xml中可以引入多个配置文件,在开发中比较常用
每个成员写自己的配置,在struts.xml引入你的配置文件
防止多个人同时操作struts.xml照成不必要的影响
<struts><include file="xxx.xml"/>
</struts>
在页面中使用<s:set name="theme" value="'simple'" scope="page" />
就可以防止struts框架给你添加不必要的主题代码
也可指定自己指定的样式<s:set name="theme" value="%{myTheme}" scope="page" />
如果在struts.xml中配置<constant name="struts.ui.theme" value="simple"/>
那么你的每个页面都不会添加不必要的主题代码
请求重定向
<result name="success" type="redirect"><param name="location">/toredirect.jsp</param><param name="username">abc</param><param name="password">123</param>
</result>
param中的name属性的特殊值(能被框架直接识别的如:location)可以在struts核心包中org.apache.struts2.dispatcher.ServletRedirectResult
这个类中可以找到这些值
struts框架会自动将地址拼接成/toredirect.jsp?username=abc&password=123
在jsp页面直接用${param.username}就可得到参数的值abc
重定向到另一个action
<action name="redirect_action"><result type="redirectAction">index</result>
</action>
重定向到另外package下的action
<action name="redirect_action2"><result type="redirectAction"><param name="actionName">aaa</param><param name="namespace">/test</param></result>
</action>
将jsp页面直接显示在浏览器窗口,不解析页面中的标签
<action name="plain_text"><result type="plainText"><!-- name="actionName"值在 org.apache.struts2.dispatcher包下面的PlainTextResult文件中 --><param name="location">/index.jsp</param><!-- 指定文件的读取的编码 name="charSet"的值可在核心包org.apache.struts2.dispatcher下面的PlainTextResult文件中--><param name="charSet">UTF-8</param></result>
</action>
配置全局的result,那么在该package下的action中没有找到相应的result时会用这个全局的result
<package ><global-results><result name="miss">/WEB-INF/hello.jsp</result></global-results>
</package>
为action中的属性注入值(当然你可以在某个方法中直接对属性赋予相应的值)
<action name="demo1" class="cn.axin.Demo1Action"><!-- 为Demo1Action中的username属性(名字可以不是username)注入值(但是注意Demo1Action中一定要有setUsername方法) --><param name="username">zhangsan</param><result>/hello.jsp</result>
</action>
在jsp页面取出Demo1Action中username属性的值
${username}
这里username是和Demo1Action中的getUsername方法对应的,否则取不到数据
<!-- 通配符的使用 -->
<action name="good_*" class="cn.axin.ThirdAction" method="{1}"><result>/third.jsp</result>
</action>
strut2的学习笔记相关推荐
- linux pipe 命名管道,linux 进程学习笔记-named pipe (FIFO)命名管道
与"无名管道"不同的是,FIFO拥有一个名称来标志它,所谓的名称实际上就是一个路径,比如"/tmp/my_fifo",其对应到磁盘上的一个管道文件,如果我们用f ...
- PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 call
您的位置 首页 PyTorch 学习笔记系列 PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 发布: 2017年8月4日 7,195阅读 ...
- 容器云原生DevOps学习笔记——第三期:从零搭建CI/CD系统标准化交付流程
暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...
- 容器云原生DevOps学习笔记——第二期:如何快速高质量的应用容器化迁移
暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...
- 2020年Yann Lecun深度学习笔记(下)
2020年Yann Lecun深度学习笔记(下)
- 2020年Yann Lecun深度学习笔记(上)
2020年Yann Lecun深度学习笔记(上)
- 知识图谱学习笔记(1)
知识图谱学习笔记第一部分,包含RDF介绍,以及Jena RDF API使用 知识图谱的基石:RDF RDF(Resource Description Framework),即资源描述框架,其本质是一个 ...
- 计算机基础知识第十讲,计算机文化基础(第十讲)学习笔记
计算机文化基础(第十讲)学习笔记 采样和量化PictureElement Pixel(像素)(链接: 采样的实质就是要用多少点(这个点我们叫像素)来描述一张图像,比如,一幅420x570的图像,就表示 ...
- Go 学习推荐 —(Go by example 中文版、Go 构建 Web 应用、Go 学习笔记、Golang常见错误、Go 语言四十二章经、Go 语言高级编程)
Go by example 中文版 Go 构建 Web 应用 Go 学习笔记:无痕 Go 标准库中文文档 Golang开发新手常犯的50个错误 50 Shades of Go: Traps, Gotc ...
- MongoDB学习笔记(入门)
MongoDB学习笔记(入门) 一.文档的注意事项: 1. 键值对是有序的,如:{ "name" : "stephen", "genda" ...
最新文章
- 在解决方案中所使用 NuGet 管理软件包依赖
- java配置pom安装依赖包,Maven pom.xml 添加本地jar包依赖以及打包方法
- linux的“自动化”
- Python的功能模块[3] - binascii - 编码转换
- ssl提高组周四备考赛【2018.11.1】
- 计算机专业论文要交源代码吗,计算机毕业论文源代码.doc
- 前端们等了8年!HTML5标准终于完工了
- react 访问后端_react前端用nginx怎么配置跨域访问后端restful api?
- PAIP.SQL的跟踪与调试
- 【计算机视觉】pycharm自制一个吉他扒谱软件(附源码)
- c语言实验报告字符数组,C语言实验报告《数组》
- linux程序cat本地文本文件,linux – 这里有cat的文件
- 新书推荐 |《企业私有云建设指南》
- 微信计步器怎么不计步_微信运动不计步数是怎么回事?
- requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
- Android 11 正式版发布
- 瑞数5维普期刊js逆向
- 伦敦银走势分析最新,十大国际黄金白银交易平台排名
- 为Chrome设置代理
- 运动轨迹绘制页面的设计与实现:仿照运动APP的轨迹记录功能将HTML5地理定位技术用于移动设备,实现地图显示与用户打车从起点到终点的运动轨迹绘制效果。
热门文章
- matlab模拟投硬币实验,利用几何画板模拟抛硬币实验
- rebase详解——非常精髓
- excel(2015)表格如何在滑动时固定标题栏
- 实现读取北京时间的C语言程序,C语言北京时间转为格林威治时间
- python未知长度数组,python – 从具有未知维数的numpy数组中提取超立方体块
- 使用while循环实现xyz+yzz=532
- R_leaflet包_最易上手地图教程(一)(上)
- 漏洞取证_使用Linux文件系统取证进行漏洞检测
- Soft-Masked-Bert网络细节解读
- window无法访问此文件夹,请确保输入的文件名是正确的,并且您有权访问此文件夹