OGNL表达式(对方法的调用,对root,context上下文对象的概念,以及测试调用方法)

xx.java中的方法:                

       public class Utils {            

           //静态方法

           public static String toUpperCase(String str){

           return str.toUpperCase();

           }

           

           public static String toLowerCase(String str){

           return str.toLowerCase();

           }

           

           //动态方法

           public String subString(String str,int start,int end){

           return str.substring(start,end);

           }

在页面中:

       

 静态方法的调用. <br>  注意静态方法的调用,格式是@包名.类名@方法名

   1.<s:property value="@cn.com.Sample.tools.Utils@toUpperCase('helloword')"/><br/>

   2.<s:property value="@cn.com.Sample.tools.Utils@toLowerCase('helloword')"/><br/>

   3.<s:property value="@cn.com.Sample.tools.Utils@toLowerCase(username)"/><br/>

   4.<s:property value="@cn.com.Sample.tools.Utils@toLowerCase(password)"/><br/>

   5.<s:property value="@cn.com.Sample.tools.Utils@toLowerCase(user.age)"/><br/>

   6.<s:property value="@cn.com.Sample.tools.Utils@toLowerCase(#user.username)"/><br/><br/>


   动态方法的调用.<br/>  注意动态方法的调用,格式是new 包名.类名().方法名

   <s:property value="new cn.com.Sample.tools.Utils().subString('HELLOWORD',2,5)"/><br/>

   <s:property value="@cn.com.Sample.tools.Utils@toLowerCase(new cn.com.Sample.tools.Utils().subString('helloword',2,5))"/><br/>

调用action中的方法。<br/>�getUtils()是action中自己写的一个方法

   <s:property value="getUtils().subString('HELLOWORD',2,5)"/><br/>

   <s:property value="utils.subString('HELLOWORD',2,5)"/><br/>






OGNL中Root根对象的概念以及Context上下文对象的概念:

Map<String ,Object> context=new HashMap<String,Object>();

context.put("user1",user);

context.put("user2",user1);

context.put("user3",user2);

try {

String tele=(String)Ognl.getValue("Address.Contact.tele",user);

System.out.println(tele);


Ognl.setValue("Address.Contact.tele", user, "123456");

System.out.println(user.getAddress().getContact().getTele());




//context

String username=(String)Ognl.getValue("#user3.username", context, new Object());

System.out.println(username);

Ognl.setValue("#user3.username", context, new Object(), "李五");

System.out.println(Ognl.getValue("#user3.username", context, new Object()));

System.out.println(Ognl.getValue("#user1.username+\",\"+#user2.username+','+#user3.username", context, new Object()));

} catch (OgnlException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}



//调用静态放方法

Ognl.getValue("@[email protected](#root.Address.Contact.tele)",user);

//调用动态方法

Ognl.getValue("@[email protected](new cn.com.Sample.tools.Utils().subString(#root.Address.Contact.tele,1,4))", user);

} catch (OgnlException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}


你可能感兴趣的:(return,表达式,public,start,上下文)