jfinal 获取servletContext总的属性值问题

发布于 2021-11-29 17:39:28 字数 1052 浏览 764 评论 7

@JFinal 你好,想跟你请教个问题:

想在jfinal 中初始化一些常量 如下代码:

public void afterJFinalStart(){
       ServletContext servletContext = JFinal.me().getServletContext();
       //设置web 根目录
       servletContext.setAttribute("path", servletContext.getContextPath());
       servletContext.setAttribute("date", new Date());
       //获取系统信息
       SystemSet systemSet = SystemSet.dao.findFirst("select *from systemset");
       servletContext.setAttribute("system", systemSet);
       //System.out.println(servletContext);
    }
其中:
SystemSet systemSet = SystemSet.dao.findFirst("select *from systemset");
       servletContext.setAttribute("system", systemSet);
这样设置后 在页面使用jstl获取数据${system.xx}失败,,,,, ${empty system}不为空,但获取system里的属性值时失败。。

要获取system里的属性值 该怎么写?





如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

离不开的别离 2021-11-30 05:47:03

在项目中可以调用Controller中的index方法,而不能调用其他方法,这是为什么呢?

天涯离梦残月幽梦 2021-11-30 05:44:39

我也遇到这个问题 楼主解决了吗

北笙凉宸 2021-11-30 05:36:47

我也问过类似问题,不过没有满意解决。

谢绝鈎搭 2021-11-30 05:36:45
package com.interceptor;
import com.jfinal.aop.Interceptor;
import com.jfinal.core.ActionInvocation;
import com.jfinal.core.Controller;
import com.jfinal.kit.PathKit;
/**
 * Created with IntelliJ IDEA.
 * User: Lenovo
 * Date: 13-9-6
 * Time: 下午10:45
 * To change this template use File | Settings | File Templates.
 */
public class GlobalInterceptor implements Interceptor {

    public void intercept(ActionInvocation ai) {
        Controller c = ai.getController();
        ai.invoke();
        c.setAttr("WebSystem", SystemSet.dao.findFirst("select *from systemset")); 
        c.setAttr("WebPath", JFinal.me().getServletContext());
        c.setAttr("WebRootPath", PathKit.getWebRootPath());
    }
}
无人问我粥可暖 2021-11-30 05:25:41

我不是每次都需要这个数据,只是在需要的时候才拿。

终止放荡 2021-11-30 03:21:05

回复
改为 static 了。 这是这东西应该有个 nosql 之类的缓存在 ,可以用一下 jfinal 的 ehcache 。完全不能变更 也是不太合理的。重启就不爽了。

丢了幸福的猪 2021-11-29 19:25:30
package com.interceptor;
import com.jfinal.aop.Interceptor;
import com.jfinal.core.ActionInvocation;
import com.jfinal.core.Controller;
import com.jfinal.kit.PathKit;
/**
 * Created with IntelliJ IDEA.
 * User: Lenovo
 * Date: 13-9-6
 * Time: 下午10:45
 * To change this template use File | Settings | File Templates.
 */
public class GlobalInterceptor implements Interceptor {
    static {
        SystemSet set = SystemSet.dao.findFirst("select *from systemset")
    }
    public void intercept(ActionInvocation ai) {
        Controller c = ai.getController();
        ai.invoke();
        c.setAttr("WebSystem", set); 
        c.setAttr("WebPath", JFinal.me().getServletContext());
        c.setAttr("WebRootPath", PathKit.getWebRootPath());
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文