当前位置: 首页 > news >正文

公司做网站好吗公司网站建设基本流程

公司做网站好吗,公司网站建设基本流程,微信里借钱的小程序,专业做网站机构ValueStack基础#xff1a;OGNL 要了解ValueStack#xff0c;必须先理解OGNL(Object Graphic Navigatino Language)#xff01; OGNL是Struts2中使用的一种表达式语言#xff0c;它可以用于JSP的标签库中#xff0c;以便能够方便的访问各种对象的属性#xff1b;它用于界… ValueStack基础OGNL 要了解ValueStack必须先理解OGNL(Object Graphic Navigatino Language) OGNL是Struts2中使用的一种表达式语言它可以用于JSP的标签库中以便能够方便的访问各种对象的属性它用于界面将参数传递到Action并进行类型转换中它还可以用于struts2的配置文件中所以非常有必要理解OGNL的基本机制。   Root对象 OGNL称为对象图导航语言。所谓对象图即以任意一个对象为根通过OGNL可以访问与这个对象关联的其它对象。如 package cn.com.leadfar.struts2.actions;   public class User {     private String username;     private Group group;         public String getUsername() {        return username;     }     public void setUsername(String username) {        this.username  username;     }         public Group getGroup() {        return group;     }     public void setGroup(Group group) {        this.group  group;     } }   package cn.com.leadfar.struts2.actions;   public class Group {     private String name;     private Organization org;     public String getName() {        return name;     }       public void setName(String name) {        this.name  name;     }       public Organization getOrg() {        return org;     }       public void setOrg(Organization org) {        this.org  org;     } }   package cn.com.leadfar.struts2.actions;   public class Organization {     private String orgId;       public String getOrgId() {        return orgId;     }       public void setOrgId(String orgId) {        this.orgId  orgId;     } }     上面三个类描述了通过一个User对象可以导航到Group对象进而导航到Organization对象以User对象为根一个对象图如下所示   User(root)    -- username    -- group       -- name       -- org          -- orgId   在真实的环境下这个对象图可能会极其复杂但是通过基本的getters方法都应该能够访问到某个对象的其它关联对象。【对象图的导航必须通过getters方法进行导航】   下述代码将创建一个User对象及其相关的一系列对象        User user  new User();        Group g  new Group();        Organization o  new Organization();         o.setOrgId(ORGID);        g.setOrg(o);        user.setGroup(g);   如果通过JAVA代码来进行导航依赖于getters方法导航到Organization的orgId属性如下所示   //用JAVA来导航访问 user.getGroup().getOrg().getOrgId();     【注意导航的目的是为了获取某个对象的值或设置某个对象的值或调用某个对象的方法】 【注意OGNL表达式语言的真正目的是为了在那些不能写JAVA代码的地方执行JAVA代码或者是为了更方便地执行JAVA代码】   利用OGNL进行导航的代码如下          //利用OGNL表达式访问        String value (String)Ognl.getValue(group.org.orgId, user);   Ognl.getValue()方法的第一个参数就是一条OGNL表达式第二个参数是指定在表达式中需要用到的root对象 完整代码如下     public void testOgnl01() throws Exception{        User user  new User();        user.setUsername(张三);               //利用OGNL表达式访问user对象的username属性        String value (String)Ognl.getValue(username, user);        log(value);     }         public void testOgnl02() throws Exception{        User user  new User();        Group g  new Group();        Organization o  new Organization();        o.setOrgId(ORGID);        g.setOrg(o);        user.setGroup(g);               //用JAVA来导航访问        log(user.getGroup().getOrg().getOrgId());               //利用OGNL表达式访问        String value (String)Ognl.getValue(group.org.orgId, user);        log(value);     }         public void testOgnl03() throws Exception{        User user  new User();        Group g  new Group();        Organization o  new Organization();        o.setOrgId(ORGID);        g.setOrg(o);        user.setGroup(g);               //用JAVA来导航访问        log(user.getGroup().getOrg().getOrgId());               //也可以在表达式中使用#root来代表root对象        String value (String)Ognl.getValue(#root.group.org.orgId, user);        log(value);     }     private void log(Object o){        System.out.println(o);     }     Context对象 在OGNL的表达式中有可能需要访问到多个毫不相干的对象这时候我们需要给OGNL传递一个Map类型的对象把表达式中需要用到的对象放到Map中即可这个Map对象称为context。   要在表达式中访问到context中的对象需要使用“#对象名称”的语法规则。 如     public void testOgnl04() throws Exception{        User user  new User();        user.setUsername(张三);        Group g  new Group();        Organization o  new Organization();        o.setOrgId(ORGID);        g.setOrg(o);        user.setGroup(g);               User user2  new User();        user2.setUsername(李四);               /**         * 所谓context其实就是一个Map类型的对象。主要是因为在OGNL中不支持多个root对象那么         * 如果需要在表达式中访问更多毫不相干的对象时只能通过一个Map来把这些对象统一传递给OGNL。         */        Map context  new HashMap();        context.put(u1, user);        context.put(u2, user2);               //在表达式中需通过“#对象的名称”来访问context中的对象        //如果表达式中没有用到root对象那么可以用任意一个对象代表root对象        String value (String)Ognl.getValue(#u1.username , #u2.username, context,new Object());        log(value);     }         public void testOgnl05() throws Exception{        User user  new User();        user.setUsername(张三);        Group g  new Group();        Organization o  new Organization();        o.setOrgId(ORGID);        g.setOrg(o);        user.setGroup(g);               User user2  new User();        user2.setUsername(李四);               User user3  new User();        user3.setUsername(王五);               Map context  new HashMap();        context.put(u1, user);        context.put(u2, user2);               //给OGNL传递root对象及context对象以便解释对应的表达式        String value (String)Ognl.getValue(#u1.username , #u2.username , username, context,user3);        log(value);     }   利用OGNL表达式进行赋值   OGNL表达式也可以用于赋值操作。     public void testOgnl06() throws Exception{        User user  new User();               //调用setValue()方法来进行赋值        //第一个参数OGNL表达式        //第二个参数root对象        //第三个参数要赋的值             Ognl.setValue(username, user, 张三);          log(user.getUsername());     }         public void testOgnl07() throws Exception{        User user  new User();               Map context  new HashMap();        context.put(u, user);               //调用setValue()方法来进行赋值        //第一个参数OGNL表达式        //第二个参数context对象         //第三个参数root对象        //第四个参数要赋的值        Ognl.setValue(#u.username, context, new Object(), 张三);          log(user.getUsername());     }         public void testOgnl08() throws Exception{        User user  new User();               Map context  new HashMap();        context.put(u, user);                //利用赋值符号来进行赋值        Ognl.getValue(#u.username 李四, context, new Object());          log(user.getUsername());     }         public void testOgnl09() throws Exception{        User user1  new User();        User user2  new User();        Map context  new HashMap();        context.put(u1, user1);        context.put(u2, user2);               //在一个表达式中可以用逗号分隔同时执行多个表达式        Ognl.getValue(#u1.username 李四,#u2.username王五, context, new Object());          log(user1.getUsername());        log(user2.getUsername());     }   利用OGNL调用对象的方法       //************************* OGNL调用对象的方法 *****************************//     public void testOgnl10() throws Exception{        User user  new User();               //如果是调用root对象的方法可以直接使用方法的名称来调用方法        Integer value (Integer)Ognl.getValue(addSomething(1,1), user);        log(value);     }         public void testOgnl11() throws Exception{        User user  new User();        user.setUsername(李四);        //如果是调用root对象的方法可以直接使用方法的名称来调用方法        String value (String)Ognl.getValue(getUsername(), user);        log(value);     }         public void testOgnl12() throws Exception{        User user  new User();        Ognl.getValue(setUsername(王五), user);        String value (String)Ognl.getValue(getUsername(), user);        log(value);     }         //************************* OGNL调用静态方法和变量 *********************//     public void testOgnl13() throws Exception{        User user  new User();        user.setUsername(王五);        //调用静态变量        //注意out是System中的静态变量out是PrintStream类型的一个对象        //而println()则是out这个对象中的实例方法不是静态方法        //调用静态方法需要在类名和变量名前面加上来调用对于实例方法用.来调用        Ognl.getValue(Systemout.println(username), user);     }         public void testOgnl14() throws Exception{        User user  new User();        user.setUsername(wangwu);        //调用静态方法,注意使用全路径类名        Ognl.getValue(Systemout.println(cn.com.leadfar.utils.UtilstoUpperCase(username)), user);     }   利用OGNL访问数组、集合对象       public void testOgnl15() throws Exception{               Object root  new Object();        Map context  new HashMap();               //利用OGNL创建java.util.List对象        List list (List)Ognl.getValue({123,xxx,kdjfk}, context, root);        context.put(list, list);               //利用OGNL创建数组        int[] intarray (int[])Ognl.getValue(new int[]{23,45,67}, context, root);        context.put(intarray, intarray);               //利用OGNL表达式创建java.util.Map对象        Map mapvalue (Map)Ognl.getValue(#{listvalue:#list,intvalue:#intarray}, context, root);        context.put(mapvalue, mapvalue);               //利用OGNL表达式访问这些数组和集合对象        Ognl.getValue(Systemout.println(#list[1]), context,root);        Ognl.getValue(Systemout.println(#intarray[2]), context,root);        Ognl.getValue(Systemout.println(#mapvalue.listvalue[0]), context,root);        Ognl.getValue(Systemout.println(#mapvalue[intvalue][0]), context,root);     }         public void testOgnl16() throws Exception{               List root  new ArrayList();        User user1  new User();        user1.setUsername(张三);        User user2  new User();        user2.setUsername(李四);        root.add(user1);        root.add(user2);               //如果root对象是List类型        log(Ognl.getValue(#root[0].username, root));        log(Ognl.getValue(#root[1].username, root));     }   本文转自农夫山泉别墅博客园博客原文链接http://www.cnblogs.com/yaowen/p/4826365.html如需转载请自行联系原作者
http://www.yutouwan.com/news/97458/

相关文章:

  • 网站建设教案dw网站做啥内容用户多
  • 凡科做网站要钱代理公司韩剧剧情介绍
  • 做科普网站网站开发需要什么基础只是
  • 中山网站关键字优化wordpress更改轮播图
  • 桂林北站有核酸检测点吗装修估价网
  • 工业和信息化网站备案系统做网站域名大概多少钱
  • 网站付费功能描述靖州网站建设
  • 门户网站建设有哪些界面设计风格秀屿网站建设
  • 开网站卖东西需要什么条件织梦网站地图
  • 西部数码网站管理助手卸载产品设计私单网站
  • cms建站流程重庆网站建设及优化
  • 做cpa没有网站怎么办网站界面设计的相关指南
  • 网络游戏网站建设论文怎样给企业做网站
  • PK10如何自己做网站wordpress页面分析插件
  • 怎么用wordpress 建站qq空间 同步 wordpress
  • 昆明网站建设创意13个实用平面设计网站
  • 做有网被视频网站吗谁可以教我做网站
  • 表白网页制作免费网站制作简述建设一个网站的具体步骤
  • 企业招聘网站网上服务大厅山东理工大学
  • 做充气气模产品一般去哪些网站福田欧曼银河报价
  • 一套网站开发需要多少钱淘宝运营培训学校
  • 电子销售网站模板yy简历网
  • 固原市建设局网站西安做网站的
  • 区块链网站开发价格贵州省城乡建设厅网站首页
  • 网站托管哪家公司好中铁建设集团有限公司招投标平台
  • 成都网站设计定制WordPress签到打卡
  • wap网站分享代码手机app应用网站
  • 国家企业信用查询系统wordpress优化数据
  • 广州网站优化专家佛山高端网站制作公司
  • 是不是做推广都得有网站干完房产中介整个人废了