Struts2框架
Posted lzj-learn
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Struts2框架相关的知识,希望对你有一定的参考价值。
Struts2:框架:
简化MVC模型,节省开发时间;
struts.properties定义好的名称有很多,不能随意改动:如:
如:
也可用struts.xml里的constant用来自定义我们自己开发用的;
如:
struts.xml文件案例解读:
include标签:
package:
interceptors:拦截器
global-result:全局的result,可以在action后根据result的名词进行引用:
Action:
加深理解:
比如下面是action所对应class元素指向的java文件,那如何指定调用方法;
1、指定method方法:
这样一个action对应一个方法,可是如果有10个的 话,就得创建10个action了,所有就有了感叹号方法;
2、感叹号方法:
首先要做个配置:
然后给result增加一个name元素,这样就可配置多个;
而这里的name元素值就是要调用方法的返回值:
最后在浏览页面的时候地址通过增加感叹号+方法名称来获取对应的result页面:
前两个读不太推荐哈
3、通配符方式:
这里的第一个*所对应的就是{1},第二个*号所对应的就是{2}
这样在我们浏览器输入地址时,可以通过自己定义{1}{2},通过{1}来找到对应的action所对应的class,通过{2}来找到对应class里所对应的方法,如:
如:
这里默认action的name值要和default-action-ref里的name值一直,当访问到不存在action时,就会跳转到error.jsp
不做设置 默认的话就是后缀.action或没有,直接写入action里的name值就好;想配置多个的话用逗号隔开;
第一种,就是在class里创建属性,接受参数,很捞,因为如果传过来的参数值有上百个那么我们就要创建上百个私有属性值;
第二种:用一个类把参数名作为自己的属性名进行创建,class类里再通过实例化这个类,获得对象,调用这个对象里的get方法进行取值,也很捞,且要注意的一点是页面在给定义参数名时要定义好对应的类,这样就使得当我们的类名进行变动时页面上要做大量的修改:
第三种:优化了第二种,参数名可以不同定义好对应的类:
继承ModelDriven<自己所定义好的类>,需要注意的是这个是需要实例化User的,第二种是不用的;且由于是继承接口,所以要实现其所定义好的方法getModel,返回我们的对象名;
如果是想把多个参数值以数集的方式储存,比如List,这样我们参数名是以数集名【x】的方式进行储存,如:
如果数集里的类型是对象类,比如:bookList<User>,这样也是可以的,如:
以上是关于Struts2框架的主要内容,如果未能解决你的问题,请参考以下文章