zoukankan      html  css  js  c++  java
  • 转载 Struts2之------Action类中的get,set方法和execute方法的使用规范和使用流程(规范是没有理由的,必须遵守!!!)

    1,Action中get,set方法的使用流程?

      前台form中有一个<input type="text" name="username"/>
      如果传到action。在action中应该有一个属性,名字也叫username;而且这个username有get/set方法,其中get方法的命名必须为getUsername,其中set方法的命名必须为setUsername。这里方法名称按java Bean的规定注意不是setUserName和getUserName。

      当struts接受这个action请求时,struts调用 username的set方法把前台的值传到action中的username,当action处理完成,要返回到页面时。在生成jsp的过程中,你可以在页面中使用EL,${username},这时调用username的get方法。

      例如下边实例:  

    class Bean{ 
        //普通公有属性
        public Integer id;    
        //标准的java bean set/get方法
        private String username;
        public String getUsername() {
            return username;
        }
        public void setUsername(String username) {
            this.username = username;
        }   
    }
     

    2,还有,get方法的命名,为什么一定要,比如参数a,get一定要命名为getA();geta()则不行。如果参数是A呢,get什么?参数命名为A就不正确,不符合规则。所以不存在问题。

      上边问题中的命名方法getA是按java Bean的规定来命名的。这个标准就是java bean的标准,标准包括标准的set/get方法相关的东西。这个是开发struts的人定的标准,并没有特定的意义,只是为了让它规范化,有一个统一的标准。

      如果你知道什么是javaBean,你就知道属性abc的get/set方法为什么是setAbc/getAbc
      更深层次,你就应该了解Ioc,控制反转

    3,Struts2中Action必须实现execute方法吗?不必须,可以指定处理方法。

    你配置里写了method={1}就会调用对应的方法,只有当你没指定method时,struts2才会默认调用execute 方法。

    <package name="helloworld" extends="struts-default">    
          <action name="hello" 
                class="MyFirstPackage.HelloworldAction" 
                method="execute">
                <result name="success">/HelloWorld.jsp</result>
          </action>
       </package>

    @总结:

    1,规范是没有理由的。跟if...else一样,java语法就是这样定的,没有为什么。

    2,在action中,必须要有对应的get和set方法,只要有get和set方法,action中值就能获取到,值都能传到前台。

  • 相关阅读:
    小记---------idea新手操作
    超时问题
    python-post
    python之cookies
    python 爬虫--下载图片,下载音乐
    如何获取字符串中某个具体的数值--通过json.load转化成字典形式获取
    json
    斐波那契数列
    约瑟夫环
    python 求从1加到100的和,join的用法
  • 原文地址:https://www.cnblogs.com/pegasus827/p/9197125.html
Copyright © 2011-2022 走看看