struts2访问静态属性和方法

许多新手调用静态属性和方法时,都会有静态方法没有值问题:

        其原因有3种可能:

        1:版本太低问题。

        2:写静态属性和方法时没有写上public。

        3:自己写的包.类名字有问题。(可以用ctrl看看能否成功跳转)

下面我对于第二种可能举个例子:

①class里面写:

        package Class;

        public class StaticTest {
            /*
             * 注意jsp里面调用静态时候要写上public,若不写则无法调用。
             * 
             */
    
            public static String aString = "asd";
            public static String tet() {
                return "asdzxc";
            }
            public static void test() {
                System.out.println("静态方法");
            }
            static String aString2 = "asd";
            static String tet2() {
                return "asdzxc";
            }
            static void test2() {
                System.out.println("静态方法");
            }
        }

②jsp里面写的是:
        <%@ page contentType="text/html;charset=UTF-8" language="java" %>
        <%@ taglib prefix="s" uri="/struts-tags" %>
        <html>
            <head>
                <title>登录成功</title>
            </head>
            <body>
               <s:debug/>    
                访问静态属性和方法。<br>            

                                <!-- 默认情况下,不允许ognl输出静态方法,需要在struts.xml里面手动开启(属性和方法都要有public) -->            
                   PI= <s:property value="@@PI"/><br>
                   max(5,10)= <s:property value="@@max(5,10)"/><br>           
                     <hr color="red">   
              自定义的静态属性和方法有public时:<br>  
                      自定义的静态属性:<s:property value="@Class.StaticTest@aString"/><br>
                      自定义的静态方法:<s:property value="@Class.StaticTest@tet()"/><br>         
                      自定义的静态方法:在后置控制台显示内容<s:property                                 value="@Class.StaticTest@test()"/><br>             
                <hr color="red">    
              自定义的静态属性和方法没有public时:(结果:没有成功调用)<br>  
                     自定义的静态属性:<s:property value="@Class.StaticTest@aString2"/><br>
                     自定义的静态方法:<s:property value="@Class.StaticTest@tet2()"/><br>         
                     自定义的静态方法:在后置控制台显示内容<s:property         value="@Class.StaticTest@test2()"/><br>             
                <hr color="red">    
            </body>
        </html>

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值