struts 修改拦截器修改返回值_关于struts2简单的介绍与示例

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核心包可能会导致一系列的错误)

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

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

目录结构如下:

创建示例action

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

处理返回值与视图相对应

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

使用tomcat运行该示例如下:

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

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

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

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

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

当用户输入错误的url

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

修改后缀为html

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

创建一个接收参数的action

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

配置struts信息

测试成功:

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

创建一个user实体类

使用user对象接收参数

更改前端参数

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

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

关于使用集合接收参数

关于处理结果的类型

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

input来限制接收参数的类型

定义age的类型为int

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

测试成功:

自定义拦截器示例:

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

在struts.xml中注册拦截器

在指定的action中调用拦截器

创建测试action

创建测试义页面

测试如下:

内置拦截器:

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

struts2权限控制示例:

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

相应的逻辑处理

视图的转发

自定义权限拦截器

配置信息

这样就完成了权限的控制

我好想你。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值