`
抽风的鱼
  • 浏览: 49698 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

服务一体化中 子服务开发的一点小感想

 
阅读更多

我负责开发子服务开发已经一个月了

 

现在功能基本都实现了 ,页面还有一些元素错位的问题  ,这个对我来说有一些难度。

 

我现在说说从一开始开发所遇到的问题:

一开始接手的时候,我没有看过该项目的前一个版本的代码,所以在开发了一个星期之后被告知要按照原先项目的规范来,然后是花了大力气来改代码,对我这种菜鸟来说这是痛苦。

 

一:

该项目使用了springmvc开发。对于一些注解 例:@responbody @requestMapping

不是很了解,使用起来就非常不顺手,百度了一把,@requestMapping是对url请求的映射,

@ResponseBody 将内容或对象作为 HTTP 响应正文返回,并调用适合HttpMessageConverter的Adapter转换对象,写入输出流。

HttpMessageConverter接口,需要开启<mvc:annotation-driven  />

AnnotationMethodHandlerAdapter将会初始化7个转换器,可以通过调用AnnotationMethodHandlerAdaptergetMessageConverts()方法来获取转换器的一个集合 List<HttpMessageConverter>

  • POST模式下,使用@RequestBody绑定请求对象,Spring会帮你进行协议转换,将Json、Xml协议转换成你需要的对象。
  • @ResponseBody可以标注任何对象,由Srping完成对象——协议的转换

 

@requestMapping可以对Controller返回值,String或者ModelAndView处理

当control返回string类型时 @requestMapping 回对该返回值进行地址拼接,然后将改地址指向的页面返回前端。如果返回ModelAndView(由spring提供,org.springframework.web.servlet.ModelAndView)使用该类可以通过addObject方法向里边存储对象,通过setViewName方法存放转发地址。(通过资源重定向方式转发,因此使用时要注意,如果页面上保留的地址,是进行数据插入等操作的,页面属刷新时 数据就会再次插入,初次使用的时候本人就出现了这样的问题)

 

 

二:

 

在进行页面开发的时候出现了更改iframe src时页面不切换问题 使用location.href=''也不起作用

之后没法使用了iframe来切换页面,之后反复试验发现另一种解决方式:以前切换iframe 的src时是在iframe的子页面中操作的 通过window.parent.$("#iframeid").attr("src","")来切换的,无反应,查看网络之后发现,新的页面请求已经发出,然后被原先的页面请求给截断了,(至于为什么会被截断 目前不是很了解),所以 调用父页面的反复来更改iframe src window,parent.changeiframe();

然后在页面中写changeiframe方法

changeiframe(){

$("#iframeid").attr("src","url");

}

这样操作页面成功切换

 

 

三:在写页面的同时发现iframe的滚动滑轮的出现特别影响美观,于是百度了一把iframe高度自适应问题.

function iFrameHeight(){
        var ifm= document.getElementById("smsComptBody");  
        var subWeb = document.frames ? document.frames["smsComptBody"].document : ifm.contentDocument;  
        if(ifm != null && subWeb != null) {
           
            $("#smsComptBody").height(subWeb.body.scrollHeight);
               //ifm.height = subWeb.body.scrollHeight;
         
        }
    }

 

该代码就解决了iframe高度自适应,但也有遗留问题,如:当你使用返回键返回上一个界面,如果上一个界面的高度比该界面高度小,则subWeb.body.scrollHeigh的取值就会有问题,界面的高度,而不是上一个页面,而且同时页面切换时,新的界面高度不如改界面事,iframe高度通同样不会刷新,而且对于界面所处的位置也不会改变,这些都导致界面不是很友好。;

function iFrameHeight(){
        var ifm= document.getElementById("smsComptBody");  
        var subWeb = document.frames ? document.frames["smsComptBody"].document : ifm.contentDocument;  
        if(ifm != null && subWeb != null) {
            $("#smsComptBody").height(0);//清除上一个页面高度影响
            $("#smsComptBody").height(subWeb.body.scrollHeight);
               //ifm.height = subWeb.body.scrollHeight;
           scroll(0,0);//界面回到最顶部
        }
    }

 

这些问题都是 使用 form提交切换页面所引起的,

使用window,parent.changeiframe();方法是否存在同样问题,目前还没有试验过,若出现,可使用以上方式处理。

 

三:

代码修改问题

在功能实现的时候,难免出现考虑不全面,导致要修改方法的情况;

这种情况下,最好不在原来的代码上修改。因为在代码多的情况下,不会非常确定方法是否在其他地方上被调用,一旦修改,就会破坏其他方法的逻辑,导致其他方法出现问题,这种时候,可以重新再写个方法。来实现该功能.

 

四:

在service层的方法处理时,最好在一个处理写成一个方法,这样在control层中可以根据不同功能来确定引用不同的service方法组合  这样可以增加代码的重用性,减少代码的重复性。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics