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的学习笔记相关推荐

  1. linux pipe 命名管道,linux 进程学习笔记-named pipe (FIFO)命名管道

    与"无名管道"不同的是,FIFO拥有一个名称来标志它,所谓的名称实际上就是一个路径,比如"/tmp/my_fifo",其对应到磁盘上的一个管道文件,如果我们用f ...

  2. PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 call

    您的位置 首页 PyTorch 学习笔记系列 PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 发布: 2017年8月4日 7,195阅读 ...

  3. 容器云原生DevOps学习笔记——第三期:从零搭建CI/CD系统标准化交付流程

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  4. 容器云原生DevOps学习笔记——第二期:如何快速高质量的应用容器化迁移

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  5. 2020年Yann Lecun深度学习笔记(下)

    2020年Yann Lecun深度学习笔记(下)

  6. 2020年Yann Lecun深度学习笔记(上)

    2020年Yann Lecun深度学习笔记(上)

  7. 知识图谱学习笔记(1)

    知识图谱学习笔记第一部分,包含RDF介绍,以及Jena RDF API使用 知识图谱的基石:RDF RDF(Resource Description Framework),即资源描述框架,其本质是一个 ...

  8. 计算机基础知识第十讲,计算机文化基础(第十讲)学习笔记

    计算机文化基础(第十讲)学习笔记 采样和量化PictureElement Pixel(像素)(链接: 采样的实质就是要用多少点(这个点我们叫像素)来描述一张图像,比如,一幅420x570的图像,就表示 ...

  9. 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 ...

  10. MongoDB学习笔记(入门)

    MongoDB学习笔记(入门) 一.文档的注意事项: 1.  键值对是有序的,如:{ "name" : "stephen", "genda" ...

最新文章

  1. 在解决方案中所使用 NuGet 管理软件包依赖
  2. java配置pom安装依赖包,Maven pom.xml 添加本地jar包依赖以及打包方法
  3. linux的“自动化”
  4. Python的功能模块[3] - binascii - 编码转换
  5. ssl提高组周四备考赛【2018.11.1】
  6. 计算机专业论文要交源代码吗,计算机毕业论文源代码.doc
  7. 前端们等了8年!HTML5标准终于完工了
  8. react 访问后端_react前端用nginx怎么配置跨域访问后端restful api?
  9. PAIP.SQL的跟踪与调试
  10. 【计算机视觉】pycharm自制一个吉他扒谱软件(附源码)
  11. c语言实验报告字符数组,C语言实验报告《数组》
  12. linux程序cat本地文本文件,linux – 这里有cat的文件
  13. 新书推荐 |《企业私有云建设指南》
  14. 微信计步器怎么不计步_微信运动不计步数是怎么回事?
  15. requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
  16. Android 11 正式版发布
  17. 瑞数5维普期刊js逆向
  18. 伦敦银走势分析最新,十大国际黄金白银交易平台排名
  19. 为Chrome设置代理
  20. 运动轨迹绘制页面的设计与实现:仿照运动APP的轨迹记录功能将HTML5地理定位技术用于移动设备,实现地图显示与用户打车从起点到终点的运动轨迹绘制效果。

热门文章

  1. matlab模拟投硬币实验,利用几何画板模拟抛硬币实验
  2. rebase详解——非常精髓
  3. excel(2015)表格如何在滑动时固定标题栏
  4. 实现读取北京时间的C语言程序,C语言北京时间转为格林威治时间
  5. python未知长度数组,python – 从具有未知维数的numpy数组中提取超立方体块
  6. 使用while循环实现xyz+yzz=532
  7. R_leaflet包_最易上手地图教程(一)(上)
  8. 漏洞取证_使用Linux文件系统取证进行漏洞检测
  9. Soft-Masked-Bert网络细节解读
  10. window无法访问此文件夹,请确保输入的文件名是正确的,并且您有权访问此文件夹