马士兵struts2.1.6视频教程笔记(36 - 50)


19、36_尚学堂马士兵_Struts2_OGNL_1
在访问Actoin向Action进行传值的时候
http:www.xxxxx/ognl.action?username=u&password=p;
private String username(set get 方法)
private String password(set get 方法)
如果用这种方式进行传值,那么在jsp页面中可以用<s:property value="username"/>进行访问值栈中的内容,没有任何问题 但是如果:
http:www.xxxxx/ognl.action?username=u&password=p;
private User user;(set get)方法,使用<s:property value="user"/>依然访问不到,因为如果采用dominModel的方式进行传值,必须:http:www.xxxxx/ognl.action?user.username=u&user.password=p;这样 Struts会在Action中帮助我们new一个User对象,然后把值放进去,但是必须要有User空的构造方法。如果依然使用http:www.xxxxx/ognl.action?username=u&password=p;的方式进行传值,那么在Action中必须手动的初始化User对象,Private User user = new User();这样同样可以访问的到。


20、37_尚学堂马士兵_Struts2_OGNL_2
Ognl:Object graph Navigation Language(对象图导航语言):首先看一下下面三个类之间的关系:
public class OgnlAsction extends ActionSupport {
private Cat cat;(set get 方法)
public String m() {
return "你好";
}
}

public class Cat {
private Dog friend;(set get 方法)
}

public Dog {
private String name;(set get 方法)
}
在OgnlAction中包含Cat,而在Cat中包含Dog的对象friend,那么现在我想访问OgnlAction的时候,给friend肤质,我们应该这么写:
http:www.xxxx/ognl.action?cat.friend.name=aaa; 用点进行导航,所以叫做"对象图导航语言"。

21、39_尚学堂马士兵_Struts2_OGNL_4
已知以下三个类中的属性和方法:
public class OgnlAsction extends ActionSupport {
private Cat cat;(set get 方法)
private String password;(set get 方法)
List<User> users = new ArrayList<User>();(set get 方法)
}

public class Cat {
private Dog friend;(set get 方法)
private String miaomiao() {
return "miaomiao";
}
}

public Dog {
private String name;(set get 方法)
}

public class S {
public static String STR = "STATIC STRING";

public static String s() {
return "static method";
}
}

(1)访问值栈中对象的普通方法:<s:property value="password.length()"/>
(2)访问值栈中对象的普通方法:<s:property value="cat.miaomiao()" />
(3)访问值栈中的Action的普通属性<s:property value="username"/>
(4)访问值栈中对象的普通属性<s:property value="user.age" />
(5)访问值栈中对象的普通属性<s:property value="cat.friend.name" />
(6)访问值栈中Action的普通方法<s:property value="m()" />
<!--要想访问静态方法,必须在struts.xml文件中加入如下配置才可以 -->
<constant name="struts.ognl.allowStaticMethodAccess"value="true"/>
(7)访问静态方法<s:property value="@com.bjsxt.struts2.ognl.S@s()"/>
(8)访问静态属性:<s:property value="@com.bjsxt.struts2.ognl.S@STR"/>
(9)访问Math类的静态方法:<s:property value="@@max(2,3)" />(不常用)
(10)访问普通类的构造方法:<s:property value="new com.bjsxt.struts2.ognl.User()"
(11)访问List:<s:property value="users"/>
(12)访问List中某个元素:<s:property value="users[1]"/>
<!-- 把users中的每一个元素User取出来,然后取他们的age属性连接成的字符串-->
(13)访问List中元素某个属性的集合:<s:property value="users.{age}"/>
(14)访问List中元素某个属性的集合中的特定值:<s:property value="users.{age}[0]"/> | <s:property value="users[0].age"/>
(15)访问Set:<s:property value="dogs"/>
<!--下面这样访问set中的某个元素是访问不到的,因为set是没有顺序的 -->
(16)访问Set中某个元素:<s:property value="dogs[1]"/>
(17)访问Map:<s:property value="dogMap"/>
(18)访问Map中某个元素:<s:property value="dogMap.dog101"/> | <s:property value="dogMap['dog101']"/> | <s:property value="dogMap[\"dog101\"]"/>
(19)访问Map中所有的key:<s:property value="dogMap.keys"/>
(20)访问Map中所有的value:<s:property value="dogMap.values"/>
<!--在ognl中他会把size方法看成属性,所以可以不加括号,直接访问 -->
(21)访问容器的大小:<s:property value="dogMap.size()"/> | <s:property value="users.size"/>
<!-- ?#指的是过滤:取出users中的每个age==1的元素 [0]是取第一个,不加 会全部取出来
(22)投影(过滤):<s:property value="users.{?#this.age==1}[0]"/>
<!-- ^#:开头 取出满足条件的开头的那一个 -->
(23)投影:<s:property value="users.{^#this.age>1}.{age}"/>
<!-- $#:开头 取出满足条件的结尾的那一个 -->
(24)投影:<s:property value="users.{$#this.age>1}.{age}"/>
<!-- 判断 -->
(25)投影:<s:property value="users.{$#this.age>1}.{age} == null"/>
(24)投影:<s:property value="users.{$#this.age>1}.{age}"/>
<!-- value="[1]访问值栈中从上到下的第几个元素,而[0]指的是值栈中从开始到结尾的所有的对象,得到的是一个集合" [0].username:访问值栈中所有元素的username属性,如果没有此属性会依次往下找其他的Action(从一个action跳转到另一个action的时候 值栈中会有两个action) -->
(25)[]:<s:property value="[0].username"/>

22、44_尚学堂马士兵_Struts2_Struts标签_1
(1)property: <s:property value="username"/>
(2)property 取值为字符串: <s:property value="'username'"/>
<!-- 如果取到admin的值,就是admin的值否则就是default所定义的默认值 -->
(3)property 设定默认值: <s:property value="admin" default="管理员"/>
<!-- value可以直接写html标签,escape默认为true,会原样不变显示出来,false将把html标签转化为浏览器可以识别的标签,显示相应的效果 -->
(4)property 设定HTML: <s:property value="'<hr/>'" escape="false"/>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕业设计,基于SpringBoot+Vue+MySQL开发的体育馆管理系统,源码+数据库+毕业论文+视频演示 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本体育馆管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此体育馆管理系统利用当下成熟完善的SpringBoot框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的Mysql数据库进行程序开发。实现了用户在线选择试题并完成答题,在线查看考核分数。管理员管理收货地址管理、购物车管理、场地管理、场地订单管理、字典管理、赛事管理、赛事收藏管理、赛事评价管理、赛事订单管理、商品管理、商品收藏管理、商品评价管理、商品订单管理、用户管理、管理员管理等功能。体育馆管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 关键词:体育馆管理系统;SpringBoot框架;Mysql;自动化
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值