转载 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中值就能获取到,值都能传到前台。
转载 Struts2之------Action类中的get,set方法和execute方法的使用规范和使用流程(规范是没有理由的,必须遵守!!!)的更多相关文章
- Object类中wait代餐方法和notifyAll方法和线程间通信
Object类中wait代餐方法和notifyAll方法 package com.yang.Test.ThreadStudy; import lombok.SneakyThrows; /** * 进入 ...
- Object类中wait带参方法和notifyAll方法和线程间通信
notifyAll方法: 进入到Timed_Waiting(计时等待)状态有两种方式: 1.sleep(long m)方法,在毫秒值结束之后,线程睡醒,进入到Runnable或BLocked状态 2. ...
- 在Action类中获得HttpServletResponse对象的四种方法
在struts1.xAction类的execute方法中,有四个参数,其中两个就是response和request.而在Struts2中,并没有任何参数,因此,就不能简单地从execute方法获得Ht ...
- Android中Looper的quit方法和quitSafely方法
Looper是通过调用loop方法驱动着消息循环的进行: 从MessageQueue中堵塞式地取出一个消息.然后让Handler处理该消息,周而复始.loop方法是个死循环方法. 那怎样终止消息循环呢 ...
- 关于Object类的equals方法和hashCode方法
关于Object类的equals的特点,对于非空引用: 1.自反性:x.equals(x) return true : 2.对称性:x.equals(y)为true,那么y.equals(x)也为tr ...
- Action类中获取request等对象的方法
struts2中的action类中,SevletActionContext可以获取
- Struts2 之 Action 类访问 WEB 资源
接着上次博客的内容我继续分享我所学到的知识,和自己在学习过程中所遇到问题以及解决方案.当然,如果读者发现任何问题均可以在下方评论告知我,先谢! 在 Action 中访问 WEB 资源 web 资源 所 ...
- action类中属性驱动和模型驱动的区别
1.Struts2的属性驱动 在Action类中,属性××通过get××()和set××()方法,把参数在整个生命周期内进行传递,这就是属性驱动 代码如下: package org.abu.csdn. ...
- 在jsp中选中checkbox后 将该记录的多个数据获取,然后传到Action类中进行后台处理 双主键情况下 *.hbm.xml中的写法
在jsp中选中checkbox后 将该记录的多个数据获取,然后传到Action类中进行后台处理 双主键情况下 *.hbm.xml中的写法 ==========方法1: --------1. 选相应 ...
随机推荐
- .net core 操作oracle
依赖项——右键——管理NuGet程序包——浏览——输入以下内容 oracle.ManagedDataAccess.core(记得勾选包括预发行版) 在页面中加入操作数据库的方法 public IAct ...
- .net core 添加NLog
依赖项——右键——管理NuGet程序包——浏览——输入以下内容 Install-Package NLog.Extensions.Logging -Pre 在根目录下添加nlog.config 更改 ...
- 【串线篇】SQL映射文件select简单查询标签
一.参数(Parameters)传递 单个参数 基本类型:取值#{hahaha}随便写 多个参数 <!-- public Employee getEmpById(Integer id,Str ...
- Nginx1.6.0+MySQL5.6.19+PHP5.5.14(centos)
一.配置防火墙,开启80端口.3306端口 CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop fi ...
- python3 变量格式化转换成字符串
num=3 str='I am %f years old' % (num) print(str) 输出 I am 3.000000 years old
- 剑指Offer-51.构建乘积数组(C++/Java)
题目: 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1].不能 ...
- php rand()函数 语法
php rand()函数 语法 rand()函数怎么用? php rand()函数表示从参数范围内得到一个随机数,语法是rand(X,Y),从两个参数范围内得到一个随机数,随机数大于等于X或者小于等于 ...
- ThinkPHP整合datatables实现服务端分页
最近做东西有一个需求,因为数据量很大,在这里我决定使用datatables的服务端分页,同时还需要传递查询条件到服务端.在网上搜索的大部分文章都感觉有些误差,于是自己封装了一下,主要配置/工具为: 服 ...
- 攻防世界 | CAT
来自攻防世界官方WP | darkless师傅版本 题目描述 抓住那只猫 思路 打开页面,有个输入框输入域名,输入baidu.com进行测试 发现无任何回显,输入127.0.0.1进行测试. 发现已经 ...
- NOIP day1 玩具谜题
逻辑有一些复杂,但是理解之后就很简单.题目描述中mogician什么的太暴力了...-1s 按照题目描述模拟,就能满分. /* Au: GG * CCF NOIP2016 day1 * toy */ ...