博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(转)structs2的相关配置问题
阅读量:6425 次
发布时间:2019-06-23

本文共 1777 字,大约阅读时间需要 5 分钟。

1.配置Action.在struts.xml文件中,使用包来管理Action,定义一个Action节点时,必须指定name属性,且值为请求url的前半部分.class可以不写,默认为ActionSupport类.Action只是一个控制器,并不能对客户端产生任何响应,只能将指定的视图资源返回给用户.通过配置其子节点
来定义逻辑视图和物理视图的关系.
/input.jsp
2.动态方法调用.要使用此功能,要在struts.properties文件中指定:struts.enable.DynamicMethodInvocation=true将请求url定义为 actionName!methodName.action 如,FruitAction!add.action.stust.xml配置文件不需要改动,但在Action里必须定义一个add方法.这样就能访问FruitAction的add方法. 3.为action指定method属性.同动态方法调用的功能一样,但此种方法,在struts.xml文件中,将一个Action处理类定义成了多个逻辑Action
这样,Action类的每个方法都被映射成一个Action.但,这中方法让action的定义相当冗余,所以struts2.0提供了另一种形式的方法调用,即使用通配符. 4.使用通配符.
的name,class,method三个属性都能使用通配符.
这种定义方式就好比定义了多个action,method="{1}",表示"*"的值.
struts2还允许
中使用表达式.如
/{ 1}.jsp
/{ 1}.jsp
由于没有指定class,则默认有ActionSupport处理,而ActionSupport的execute方法返回success,所以会跳到*.jsp页面.问题来了,如果有一个这样的请求,aaaAction.action,在Struts.xml文件中定义了三个
那么将会匹配哪个
呢.首先,如果有一个
的name与请求完全匹配,那么就一定匹配该
,如果没有,则按顺序从上至下查找,如果能匹配,就映射该
,例如,如果有一个aaaAction请求,则会匹配
如果请求是aaAction,则会匹配
,因为它在最先匹配.所以,一般将
放到最后,范围最小的放前面. 5.默认Action struts2允许你定义一个默认的Action,当容器找不到与请求Url相匹配的
是,将使用此默认action.
6.属性驱动和模型驱动.属性驱动,将需要从页面获取的属性和传递给下一个视图的属性定义为action的实例变量,并提供getter和setter方法.模型驱动,则是向struts1.x那样,使用一个Pojo类来封装属性,但此pojo类不需要继承ActionForm,它就是一个普通的Pojo类.在Action中要实现ModelDriven接口,定义Pojo实例变量,并给其赋值(new),然后实现getModel()方法,返回pojo对象. 7.异常机制Struts2.0提供了一种声明式的异常处理方式.public String execute() throws ExceptionAction中的execute()能抛出所有Exception,将异常抛给了框架来处理,我们甚至不需要使用繁琐的try{}catch(){},我们只需要在struts.xml中配置
异常映射,就能方便的处理各类异常.它有两个属性,exception:指定该异常映射所设置的异常类型result:出现指定异常后,返回的结果.全局异常:将
元素作为
元素的子元素局部异常:将
元素作为
的子元素.在页面输出异常信息:

 

转载于:https://www.cnblogs.com/hardwork/p/4166429.html

你可能感兴趣的文章
数据库设计三大范式
查看>>
ionic 字体的导入方法
查看>>
IP路由原理
查看>>
内部类详解
查看>>
洛谷P2726 阶乘 Factorials 数学
查看>>
类加载机制
查看>>
火柴棒等式(2008年NOIP全国联赛提高组)
查看>>
mongodb int型id 自增
查看>>
【转】关于大型网站技术演进的思考(十八)--网站静态化处理—反向代理(10)...
查看>>
Java中的4种代码块
查看>>
Ocelot(七)- 入门
查看>>
生成水杯热气
查看>>
程序员工作心法
查看>>
三个常用的PHP图表类库
查看>>
python中异常处理--raise的使用
查看>>
高中数学与初中数学的接轨点
查看>>
python 安装第三方模块
查看>>
Whitelabel Error Page 专题
查看>>
Spring Data Redis—Pub/Sub(附Web项目源码)
查看>>
RSD和wlwmanifest是什么
查看>>