2021年1月21日星期四

对于Struts框架自动执行类中的自定义方法的解决方法

  之所以接触到已经过时的struts框架,是因为学习要求,算是体会框架的进化过程吧,如果直接使用最先进的框架,可能因为缺乏使用历程经验而无法深刻地体会到框架的优化特性。

  闲话不多赘述,进入正题。

  发现问题:Struts框架当按照需求执行到某个Action对应的类下的特定方法时,同类下未被调用的自定义方法会自动执行,从而引发错误。

  出现原因:经过检查,莫名其妙的被自动调用的方法为getUserInfo(),其中名字首部带有"get"字样,因此出现问题。

  个人猜测:因为初学Struts这个古老框架,深知继续研究没有太多价值,所以仅仅进行了简单的试验,经过实验发现:分别修改了4次方法名,运行环境为ecplise ee+tomcat9.0,运行环境无异常。

方法名试验

组别

起名

结果

第一组getUserInfo()自动执行
第二组get123()不自动执行
第三组GetUserInfo()不自动执行
第四组Getget()不自动执行

  所以,这里很可能跟Struts中识别类中getter方法的代码块有关系,具体相关代码块暂时没有进行研究,不过通过比较第一组、第二组、第四组试验发现,当方法命名为小写词汇"get"+任何合法命名内容+字母结尾时,会引发"Struts框架在执行该方法所在类的其他方法时自动执行该方法"现象。

  结论(暂时):通过试验,发现除了第一组之外,其他三组的方法名称都不报错,但是基于"方法命名有意义"的要求,不建议以第二组进行命名;又基于常规编程规约,方法命名还需要符合"第一个单词首字母小写之后所有单词首字母大写"的要求,所以请放弃以"get"或者"Get"为首部进行命名的方式,转为其他同义单词。

  踩坑完毕。









原文转载:http://www.shaoqun.com/a/512472.html

跨境电商:https://www.ikjzd.com/

agora:https://www.ikjzd.com/w/2176

跨境通:https://www.ikjzd.com/w/1329


之所以接触到已经过时的struts框架,是因为学习要求,算是体会框架的进化过程吧,如果直接使用最先进的框架,可能因为缺乏使用历程经验而无法深刻地体会到框架的优化特性。  闲话不多赘述,进入正题。  发现问题:Struts框架当按照需求执行到某个Action对应的类下的特定方法时,同类下未被调用的自定义方法会自动执行,从而引发错误。  出现原因:经过检查,莫名其妙的被自动调用的方法为getUserI
pat:pat
贝贝官网:贝贝官网
河南云台山好玩吗 :河南云台山好玩吗
深圳最好的旅行社:深圳最好的旅行社
2020年春节深圳欢乐谷有什么优惠活动?:2020年春节深圳欢乐谷有什么优惠活动?