发表于: 2017-11-15 21:48:06

1 728


一.今天完成的主要任务

1.在写好的前台页面中进行联调

通过联调,发现了之前写的代码中的很多问题,有前端页面的,也有后端页面的

但是到目前为止,基本是改好了

现在也更加深刻的理解开发流程中描述的敏捷开发中不存在前后端联调的步骤,应该是每天都有前后端的交互,每天在进行minidemo的时候就及时发现代码中的问题,然后及时解决,这样减少了任务切换的代价,改起来速度也非常快,一个模块结束之后起码确保不会出现非常明显的bug

同时,我也发现自己在写接口的时候,有的接口是漏写了一部分的功能,应该是当时在脑子中想好怎么写,但是具体实现的时候,写到一半思路被打断之后就把后半段落下了,所以要再开始写代码之前,把接口中的每一步都详细的列出来,写的时候直接对照步骤实现就好,以后再写接口的时候要按照这个思路和步骤来写

2.学习struts的调用servletAPI的剩余两种方法

一个是实现***Ware接口,实现方式如下:

首先要实现ServletRequestAware,ServletResponseAware,ServletContextAware接口,然后通过定义类变量的形式和setter方法的形式获取相应的servlet对象,这种方式比第一种简单一些,但是依然很麻烦

第三种方式是最简单的方式

是在执行的方法中通过ServletActionContext对象获取相应的servlet对象,ServletActionContext中有相应的静态方法获取servlet对象

可以看到,这种方式虽然简单,但是相比springMVC直接把servlet对象当作控制器的方法参数传递还是要复杂一些

3.学习了struts加载Action时的顺序

不好描述,直接以一个例子来说明

http://localhost:8080/path1/path2/path3/hello.action

假设一个这样的http请求URL,url路径为/path1/path2/path3/hello.action,struts2的解析顺序如下

首先,找包命名空间为/path1/path2/path3的包,如果找到,再找action名为hello的action,然后调用对应的class执行;如果在包中没找到hello Action,那么就去默认的包中寻找,默认的包的命名空间为"",如果找到,就执行,找不到,报错

其次,如果没有包命名空间为/path1/path2/path3的包,就向上一级,到命名空间为/path1/path2的包中寻找,重复第一步,如果一直找不到相应的包名,最后到默认的包,即命名空间为""中寻找,如果还找不到,则报错

这一块代码演示起来比较复杂,这里就不演示了

4.学习了struts的动态方法绑定的知识

通常来讲,struts是一个action绑定一个请求,一个action对应一个Action类,如果项目比较大,请求比较多,那么每一个请求都要创建一个类,代码冗余量非常大,而且不利于维护,为了解决这个问题,可以使用动态方法绑定在一个action中绑定多个method

struts动态绑定方法也有三种

一种是在Action类中添加多个方法,struts.xml文件中依然配置多个action标签,每个标签除了class,其余属性都不一致,代码如下

两个请求,addUser和updateUser都是MethodTestFirst类中的方法处理,但是这也有一个问题,那就是如果同一个功能模块中的方法比较多,那就需要配置很多的action标签,造成配置文件代码量大

第二种是设置动态绑定方法的全局配置为true,然后再url中用!+不同的参数的方式,将请求绑定在同一个Action类中的不同method上,但是这种方式的问题是url非常不好,官方也不推荐使用,项目中也绝对不会用这种方式,所以这里就不演示

第三种是项目中常用的通配符绑定参数的方式,同时也是官方推荐的方式,具体做法是再action的name属性中,将不同的请求部分用*代替,然后method属性中将相应的通配符代替,代码如下

需要注意的是struts2.5版本之后新加了一个特性,即严格方法调用,所以默认是不允许开启通配符指定方法调用,如果要使用,可以有两种方式,一是在package标签中的strict-method-invocation属性设置为空,意思是关闭严格方法调用,但是这种方式官方不推荐,官方更多的是推荐白名单的方式,就是在图中标识出来的部分,在允许使用的方法中将自定义的方法名添加进去即可

二.明天计划完成的事情

1.再把前台的流程过一遍,准备demo的数据

2.将批量任务中的功能过一遍,准备demo的数据

3.如果有时间,继续学习struts2框架

三.遇到的问题

暂无

四.收获

以上

五.项目进度情况

胜利在望


返回列表 返回列表
评论

    分享到