`
leero
  • 浏览: 10676 次
  • 性别: Icon_minigender_1
  • 来自: 海口
社区版块
存档分类
最新评论

grails/groovy/java?bug

    博客分类:
  • test
阅读更多

 我直接在A类中的main实例化A类后调用B类的静态方法可以,如果是在某gsp页面实例化A类,在调用B类的静态方法就出错,我在B类中的那个静态方法里使用了反射,以下是代码
SysContext.groovy
Groovy代码

package cn.aloxc.stock.context
import cn.aloxc.stock.*;
import   java.lang.reflect.InvocationHandler;
import   java.lang.reflect.Method;
import   java.lang.reflect.Proxy;
public class SysContext {
  public static void main(def args)
  {
    println getPrpt("BOYI_PERIOD");
  }
  public static getPrpt(def a)
  {
    Class clazz = Class.forName("cn.aloxc.stock.context.SysContext");
    def field = clazz.getField("${a.toUpperCase()}");
    def property = field.get(clazz);
    return property;  
  }
  public static BOYI_PERIOD = ["day","week","month","season"];
}


XlsExportService .groovy
Groovy代码
package cn.aloxc.stock.tools;

import cn.aloxc.stock.*;
import cn.aloxc.stock.context.SysContext;
class XlsExportService {
  public static void main(def args)
  {
    def domains = ["cn.aloxc.stock.Zcggstat","cn.aloxc.stock.Boyistat","cn.aloxc.stock.Fundstat"]
    me.xlsExportData(null,null,domains)
  }
  def xlsExportData(out, request, domains){
      domains.eachWithIndex{domain ,dmnIdx ->
        def smpDmn = domain.replaceAll("${SysContext.DOMAIN_ROOT}.","").toLowerCase(); //eg:zcggstat
             SysContext.getPrpt("${BOYI_PERIOD}").eachWithIndex{ aTp , aIdx ->
                //
             }          
    }
}

xx.gsp

<%@ page import="cn.aloxc.stock.tools.XlsExportService" %>
<%
XlsExportService xlsExportService = new XlsExportService();
//response.setHeader("Content-disposition", "attachment; filename=boyistat.xls")
//response.setContentType("application/vnd.ms-excel")
def domains = [];
grailsApplication.domainClasses.each{
    domains << it.fullName;
}
xlsExportService.xlsExportData(response.outputStream, request,domains);
%>

省去了部分代码,不知道大家有碰到这样的问题否

0
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics