`

马士兵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"/>
分享到:
评论

相关推荐

    struts2.1.6-config-browser-plugin.api.chm

    struts2.1.6-config-browser-plugin.api.chm struts2.1.6-config-browser-plugin.api.chm

    struts2-convention-plugin-2.1.6.jar

    struts2-convention-plugin-2.1.6.jar

    struts2-struts1-plugin-2.1.6.jar

    struts2-struts1-plugin-2.1.6.jar

    struts2-core-2.1.6.jar

    struts2-core-2.1.6.jarstruts2-core-2.1.6.jarstruts2-core-2.1.6.jarstruts2-core-2.1.6.jarstruts2-core-2.1.6.jarstruts2-core-2.1.6.jarstruts2-core-2.1.6.jarstruts2-core-2.1.6.jarstruts2-core-2.1.6.jar...

    struts2.1.6-lib

    Struts2.1.6-Lib: 深入理解Struts2框架核心与库文件 Struts2是一个流行的开源MVC(Model-View-Controller)框架,它为Java Web应用提供了一种强大的架构支持。Struts2.1.6是该框架的一个版本,其lib目录下的jar包...

    马士兵Struts2笔记2013

    以下是关于"马士兵Struts2笔记2013"中的关键知识点详解: 1. **建立Struts2工程** 创建一个Struts2工程通常涉及在集成开发环境中(如MyEclipse)创建一个新的Web项目,然后将必要的Struts2库添加到项目的`lib`目录...

    struts2.1.6-apps.zip

    在Struts2.1.6-apps这个压缩包中,包含了多个示例应用,这些应用能够帮助初学者理解Struts2的核心概念和实际应用。 首先,让我们深入了解一下Struts2框架的关键特性: 1. **Action与Result**:在Struts2中,Action...

    struts2.1.6jar all.zip

    这次我们讨论的是Struts2的特定版本——Struts2.1.6的更新内容和使用注意事项。 在描述中提到,之前上传的"struts2.1.6jar all.zip"文件出现了错误,里面包含了Hibernate的内容,而实际上应该是与Struts2相关的文件...

    struts-2.1.6-sources

    Struts 2.1.6 是一个非常重要的版本,在Java Web开发中占据着核心地位,尤其是在基于MVC(Model-View-Controller)架构的应用程序设计中。Struts 2 是Apache软件基金会的一个开源项目,它是Struts 1的升级版,提供了...

    struts2-config-browser-plugin-2.3.28-hjx20200915.jar

    默认的struts2-config-browser-plugin包中的ftl文件include标签路径用的相对路径,会找到包内的include文件,将包内ftl里include的路径改成的/开头的全路径。

    struts2-convention-plugin-2.1.6.jar 和struts2-core-2.1.6.jar

    不论高低版本,要使用struts2-core这个jar包,当又需struts2-convention-plugin.jar时勿必要使两者版本一致哦,否则会有DefError、Unable to read class诸等错误

    struts2-rest-plugin-2.1.6.jar

    struts2-rest-plugin-2.1.6.jar

    struts2-jfreechart-plugin-2.1.6.jar

    struts2-jfreechart-plugin-2.1.6.jar

    struts2-junit-plugin-2.1.6.jar

    struts2-junit-plugin-2.1.6.jar

    json-lib-2.1.jar和struts2-json-plugin-2.1.8.1.jar

    `struts2-json-plugin-2.1.8.1.jar` 则是Struts 2框架的一个插件,主要用于增强Struts 2对JSON的支持。Struts 2是一款非常流行的MVC(Model-View-Controller)框架,用于构建企业级的Java Web应用程序。这个插件允许...

    struts2.1.6jar包

    Struts2.1.6是Apache Struts框架的一个版本,它是基于MVC(Model-View-Controller)设计模式的Java Web应用程序开发框架。这个版本的jar包包含了运行Struts2应用所需的所有核心类库和依赖组件。以下是关于Struts...

    struts2版本 2.1.6 必须的jar包 和 web.xml 文件的修改

    在本文中,我们将深入探讨Struts2版本2.1.6中的核心jar包以及如何调整`web.xml`配置文件以实现正确部署。 首先,Struts2的核心jar包是框架运行的基础,它们提供了Action映射、拦截器、结果类型和其他关键功能。对于...

    struts2-spring-plugin-2.1.6.jar

    使用struts2+spring方式开发,就必须要struts2-spring-plugin-2.1.6.jar这个包,因为它是两者融合的插件,如果没有肯定不会出错

    struts2.1.6+spring2.0+hibernate3.2常用配置包

    MyEclipse8.0中自带的struts2版本是2.1.6,spring版本有2.0,2.5的,hibernate版本较多些至3.2,首先选版本就选择最优的,struts2没的选只有2.1.6版的,所以先导入struts2支持,然后是spring选的是2.0,问题就出在...

    ide-eval-resetter-2.1.6

    标题 "ide-eval-resetter-2.1.6" 暗示这是一款针对IDE的插件,主要用于IDE的评估期重置。在IT行业中,尤其是软件开发领域,开发人员经常使用集成开发环境(IDE)如IntelliJ IDEA来编写代码。IntelliJ IDEA是一款非常...

Global site tag (gtag.js) - Google Analytics