关于struts2简单的详情与示例

作者 : 开心源码 本文共1670个字,预计阅读时间需要5分钟 发布时间: 2022-05-12 共229人阅读

Apache Struts 2是一个使用于开发Java EE网络应使用程序的开放源代码网页应使用程序架构。它利使用并延伸了Java Servlet API,鼓励开发者采使用MVC架构。

缘起于Apache Struts的WebWork框架,旨在提供相对于Struts框架的加强和改进,同时保留与Struts框架相似的结构。2005年12月,WebWork宣布WebWork 2.2以Apache Struts 2的名义合并Struts。

Struts1设计的第一目标就是使MVC模式应使用于web程序设计。在过去10年,Struts在更好的web应使用方面所做的工作是值得一定的。在某些方面,Struts社区注意到这一框架的局限性,所以这个活跃的社区通过对MVC运行模式的重新了解并同时引入少量新的建筑学方面的设计理念后,新的Struts2框架结构更清晰,用更灵活方便。

这一新的结构包含应使用逻辑的横切面阻拦器,基于注释的配置以减少和去除XML形式的配置文件,功能强大的表达式语言,支持可更改、可重使用UI组件的基于微MVC的标签库。Struts2有两方面的技术优势,一是所有的Struts2应使用程序都是基于client/server HTTP交换协议,The Java Servlet API揭示了Java Servlet只是Java API的一个很小子集,这样我们可以在业务逻辑部分用功能强大的Java语言进行程序设计。Struts 2提供了对MVC的一个清晰的实现,这一实现包含了很多参加对所以请求进行解决的关键组件,如:阻拦器、OGNL表达式语言、堆栈。

idea构建struts2项目:

创立strus2项目(注意不要勾选download,最新的struts核心包可能会导致一系列的错误)

关于struts2简单的详情与示例

去struts官网下载项目所需要的包

关于struts2简单的详情与示例

解压下载好的文件,将lib文件夹内的所有包导入项目中

关于struts2简单的详情与示例

目录结构如下:

关于struts2简单的详情与示例

创立示例action

关于struts2简单的详情与示例

配置struts.xml文件,一共有三种方式,但使用的最多的就是通配符的方式

关于struts2简单的详情与示例

解决返回值与视图相对应

关于struts2简单的详情与示例

关于struts2简单的详情与示例

需注意web.xml中包的路径 struts2.5版本略有不同

关于struts2简单的详情与示例

用tomcat运行该示例如下:

关于struts2简单的详情与示例关于struts2简单的详情与示例

假如在实际开发过程中,将所有的action写在一个配置文件内,这个文件就会显得异常臃肿,所以我们需要采使用多个配置文件。

指定多个配置文件的示例:

我们将刚才写的struts.xml配置信息移到一个新的test.xml文件中,而后再struts.xml文件引入test.xml配置文件

关于struts2简单的详情与示例

关于struts2简单的详情与示例

我们也可以统一配置文件的编码格式为UTF-8,避免以后出错

关于struts2简单的详情与示例

我们也可以采使用默认的action 防止404错误不友好体验

关于struts2简单的详情与示例

当使用户输入错误的url

关于struts2简单的详情与示例

关于修改请求地址的后缀示例:

修改后缀为html

关于struts2简单的详情与示例

关于struts2简单的详情与示例

action接收参数的示例:
创立一个登陆界面

关于struts2简单的详情与示例

创立一个接收参数的action

注意接收参数的命名与前台名称的一致性

关于struts2简单的详情与示例

配置struts信息

关于struts2简单的详情与示例

测试成功:

关于struts2简单的详情与示例

关于struts2简单的详情与示例

但是这样写,当参数过多时就会不利于维护,我们需要采使用一种面向对象得到方式来接收参数

创立一个user实体类

关于struts2简单的详情与示例

用user对象接收参数

关于struts2简单的详情与示例

更改前台参数

关于struts2简单的详情与示例

但是当传入参数改变的时候,我们需要改变接收实体的参数,所以也不建议用。

我们用实现接口的方式接收参数,这种方式需要实例化对象

关于struts2简单的详情与示例

关于struts2简单的详情与示例

关于用集合接收参数

关于struts2简单的详情与示例

关于struts2简单的详情与示例

关于struts2简单的详情与示例

关于解决结果的类型

关于struts2简单的详情与示例

除了input比较特殊之外,其余的几种只是一种代码规范。

input来限制接收参数的类型

定义age的类型为int

关于struts2简单的详情与示例

修改配置文件信息,参数正确可以进入首页,否则继续停留在登陆界面

关于struts2简单的详情与示例

测试成功:

关于struts2简单的详情与示例关于struts2简单的详情与示例

自己设置阻拦器示例:

新建阻拦器,继承AbstractInterceptor类,重写intercept方法

关于struts2简单的详情与示例

在struts.xml中注册阻拦器

关于struts2简单的详情与示例

在指定的action中调使用阻拦器

关于struts2简单的详情与示例

创立测试action

关于struts2简单的详情与示例

创立测试义页面

测试如下:

关于struts2简单的详情与示例关于struts2简单的详情与示例

关于struts2简单的详情与示例

内置阻拦器:

关于struts2简单的详情与示例

需要注意的是当我们为某个action指定阻拦器后,则默认的阻拦器不会被引使用,所以需要手动引使用默认阻拦器

关于struts2简单的详情与示例

关于struts2简单的详情与示例

struts2权限控制示例:

WEB-INF是无法直接通过url访问的

关于struts2简单的详情与示例

相应的逻辑解决

关于struts2简单的详情与示例

视图的转发

关于struts2简单的详情与示例

自己设置权限阻拦器

关于struts2简单的详情与示例

配置信息

关于struts2简单的详情与示例

这样就完成了权限的控制

我好想你。

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 关于struts2简单的详情与示例

发表回复