抽取 接口 alt +shift+t
cvs2.5 安装 只需要 设置 仓库路径
----------------------------------
struts2今天的点体会
获得struts2 action 里获得web元素 request session application 的方式 有4种 一般用如下2种 通常用ioc方式(第2种)
第一种 通过容器获得
public class LoginAction extends ActionSupport {
private Map request;
private Map session;
private Map application;
public LoginAction1() {
request = (Map)ActionContext.getContext().get("request");
session = ActionContext.getContext().getSession();
application = ActionContext.getContext().getApplication();
}
public String execute() {
request.put("r1", "r1");
session.put("s1", "s1");
application.put("a1", "a1");
return SUCCESS;
}
}
第2种
import java.util.Map;
import org.apache.struts2.interceptor.ApplicationAware;
import org.apache.struts2.interceptor.RequestAware;
import org.apache.struts2.interceptor.SessionAware;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport implements RequestAware,SessionAware, ApplicationAware {
private Map<String, Object> request;
private Map<String, Object> session;
private Map<String, Object> application;
public String execute() {
request.put("r1", "r1");
session.put("s1", "s1");
application.put("a1", "a1");
return SUCCESS;
}
@Override
public void setRequest(Map<String, Object> request) {
this.request = request;
}
@Override
public void setSession(Map<String, Object> session) {
this.session = session;
}
@Override
public void setApplication(Map<String, Object> application) {
this.application = application;
}
}
通常 request 都被action 默认给封装了 不需要我们给出
application也通常 用Java里面static 属性值代替了
ognl 用来提取 action里传过来的值 ,也可以调用其他对象属性和方法的
如果对象没有传值 那么调用 会是空
对象要是有空参数的构造方法、
<li>访问值栈中的action的普通属性: username = <s:property value="username"/> </li>
<li>访问值栈中对象的普通属性(get set方法):<s:property value="user.age"/> | <s:property value="user['age']"/> | <s:property value="user[\"age\"]"/> | wrong: <%--<s:property value="user[age]"/>--%></li>
<li>访问值栈中对象的普通属性(get set方法): <s:property value="cat.friend.name"/></li>
<li>访问值栈中对象的普通方法:<s:property value="username.length()"/></li>
<li>访问值栈中对象的普通方法:<s:property value="cat.miaomiao()" /></li>
<li>访问值栈中action的普通方法:<s:property value="m()" /></li>
<hr />
<li>访问静态方法:<s:property value="@com.bjsxt.struts2.ognl.S@s()"/></li>
<li>访问静态属性:<s:property value="@com.bjsxt.struts2.ognl.S@STR"/></li>
<li>访问Math类的静态方法:<s:property value="@@max(2,3)" /></li>
<hr />
<li>访问普通类的构造方法:<s:property value="new com.bjsxt.struts2.ognl.User(8)"/></li>
<li>访问普通类的构造方法的属性:<s:property value="new com.bjsxt.struts2.ognl.User(8).age"/></li>
<hr />
<li>访问List:<s:property value="users"/></li>
<li>访问List中某个元素:<s:property value="users[1]"/></li>
<li>访问List中元素某个属性的集合:<s:property value="users.{age}"/></li>
<li>访问List中元素某个属性的集合中的特定值:<s:property value="users.{age}[0]"/> | <s:property value="users[0].age"/></li>
<li>访问Set:<s:property value="dogs"/></li>
<li>访问Set中某个元素:<s:property value="dogs[1]"/></li> set 没顺序 所以取不到
<li>访问Map:<s:property value="dogMap"/></li>
<li>访问Map中某个元素:<s:property value="dogMap.dog101"/> | <s:property value="dogMap['dog101']"/> | <s:property value="dogMap[\"dog101\"]"/></li>
<li>访问Map中所有的key:<s:property value="dogMap.keys"/></li>
<li>访问Map中所有的value:<s:property value="dogMap.values"/></li>
<li>访问容器的大小:<s:property value="dogMap.size()"/> | <s:property value="users.size"/> </li>
<hr />
<li>投影(过滤):<s:property value="users.{?#this.age==1}[0]"/></li>
<li>投影:<s:property value="users.{^#this.age>1}.{age}"/></li>
<li>投影:<s:property value="users.{$#this.age>1}.{age}"/></li>
<li>投影:<s:property value="users.{$#this.age>1}.{age} == null"/></li>
<hr />
<li>[]:<s:property value="[0].username"/></li>
users.{?#this.age==1}[0]" 访问users这个list的的age属性里为1的 第1个 use
--------------------------------------------------------------------------------------------------------
ssh分页 在要分页的位置 注入 pageBean 然后在 前台给pageBean传入 我们分页的一些参数
在action里调用service的时候传入 已经给参数的pageBean ,得到新的 pageBean 就是分页后的结果!
-----------------------------------------------------------------------------------------------------------------------
明天看 struts2的 标签! 要加速了 这个速度太慢了!
分享到:
相关推荐
标题中的“行业数据-2020年1月29日-2月14日平安好医生(01833.HK)交易日开盘收盘价”表明这是一份关于平安好医生这家公司在2020年特定时间段内的股票市场数据。平安好医生是中国领先的在线医疗健康服务平台,而01833....
2020年1月29日-2月14日平安好医生(01833.HK)交易日开盘收盘价.xls
大数据研究素材-道琼斯1985年1月29日至2019年12月13日线K线数据,研究股票走势和量化交易极好的素材。
演示应用程序于2021年1月29日提交给realestate.co.nz 对于有兴趣使用此演示应用程序的用户的占位符说明。 我将根据反馈添加到这些内容中。 安装React Native环境设置指南中描述的依赖工具(单击React Native CLI...
【网博士10月29日补丁】是一款针对网络安全问题进行修复的重要更新程序,它在发布时可能包含了对系统漏洞、性能优化、安全增强等方面的修复。由于官方已经不再提供下载,这款补丁可能具有一定的稀缺性和历史价值,...
"卡巴最新key 5月29日亲测"这个标题暗示了我们正在讨论的是关于卡巴斯基激活码(key)的更新和验证。在这个场景中,"最新key"指的是能够激活卡巴斯基软件的新序列号,而"5月29日亲测"则意味着这些key在那个特定日期...
Telerik Reporting Q1 2010 SP1 Part1(2010年3月29日版本)
2020年4月29日星期三:书籍销量报告?1
标题中的“全国腾讯位置数据(2019年04月29日).zip”表明这是一份来自腾讯的地理位置数据集,日期为2019年4月29日,以压缩文件(.zip)的形式存储。这类数据通常包含用户在特定日期的移动轨迹、热点区域分布等信息...
Telerik Reporting Q1 2010 SP1 Part2(2010年3月29日版本)
第15届青少年编程python-stema10月29日真题+答案。 第15届青少年编程python-stema10月29日真题+答案。 第15届青少年编程python-stema10月29日真题+答案。 第15届青少年编程python-stema10月29日真题+答案。 第15届青...
- 最终求得天数差对7取模得到一周中的哪一天,并加上1900年1月1日至该年第一天的一周中的位置,从而确定该月第一天是一周中的哪一天。 #### 三、主函数解析 程序的核心逻辑在`main()`函数中实现,主要包括获取用户...
XXXX年11月29日计算机科技一班有奖竞答活动策划书.doc
总的来说,"9月29日QQ申请器源码"是一个极好的学习资源,对于想要提升易语言编程技能,特别是对网络编程和自动化有兴趣的初学者来说,是一次宝贵的实践机会。通过分析和理解这段源码,可以深化对编程原理的理解,...
58同城电话号码识别程序(针对11月29日升级) C#版exe文件 源码(项目文件)下载请到http://download.csdn.net/detail/luochaolun/4817642 VS2005开发,运行需.net framework 2 58同城电话生成方式每两天一变,本程序...
很抱歉,但根据您提供的信息,“4月29日消防检查.pptx”似乎是一个关于消防检查的演示文稿,内容可能涉及消防法规、安全规定、检查流程、隐患排查、应急措施等方面,而标签“技术”可能指的是与消防系统的技术性相关...
=============2015年6月29日修复日志================= 1、后台上传图片尺寸大于1600像素时上传控件默认压缩(已修改) 2、后台查询评论时发生错误BUG(已修复) 3、后台artdialog插件在弹窗确定取消时显示回调错误问题...
标题中的“2019年5月29日用于问题.zip”可能是一个包含特定解决方案的压缩文件,日期可能指的是该问题或代码示例的创建时间。描述提到了“myCustomTaskPane2”,这是一个在Microsoft Office应用程序(如Word、Excel...
2007年11月29日海南公务员录用考试面试试题.docx