三大框架(ssh)——struts深入学习(OGNL其他技术)

OGNL其他技术

  • 调用对象普通方法
    直接调用即可:<s:property value="#request.t5.test1()" />
  • 调用类的静态方法和静态属性
    @class@method(args)     //调用静态方法
    @class@field         //调用静态字段
    注意:
    • 其中class必须给出完整的类名(包括包名),如果省略class,那么默认使用的类是java.util.Math,如:

@@min(5,3)   @@max(5,3)  @@PI

    • 需要修改struts.xml配置,增加:

<constant name="struts.ognl.allowStaticMethodAccess" value="true" />

 

增加测试类Test5.java:

package com.bjsxt.struts.test;

public class Test5 {

public static int age=15;

public void test1(){

System.out.println("调用对象普通方法!");

}

public String test2(){

System.out.println("调用对象普通方法!并有返回值");

return "ttt222";

}

public static String test3(){

System.out.println("调用类的静态方法!");

return "ccc";

}

}

在struts.xml中增加配置:

<constant name="struts.ognl.allowStaticMethodAccess" value="true" />

ok.jsp中代码:

<%@ page language="java" import="java.util.*,com.bjsxt.struts.test.*" pageEncoding="gbk"%>

<%@ taglib prefix="s" uri="/struts-tags" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <title>测试OGNL</title>

  </head>

  <body>

<%

Test5 t = new Test5();

request.setAttribute("t5",t);

 %>  

    <s:property value="#request.t5.test1()" /> <br/>

    <s:set var="s1" value="#request.t5.test2()" scope="request" ></s:set>

    获得普通方法调用后的返回值:<s:property value="#request.s1" /> <br/>

    <s:set var="s2" value="@com.bjsxt.struts.test.Test5@test3()" scope="request" ></s:set>

    <s:property value="#request.s2" /><br/>

    <s:property value="@@PI" /><br/>

    

  </body>

</html>

执行结果:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值