jfinal捕捉404和500页面问题

发布于 2021-12-01 02:46:31 字数 713 浏览 774 评论 4

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

我希望jfinal能提供一个开关,能把捕捉到的404和500页面动作关闭,让容器来处理404和500页面。(我们的原因是这样子,因为用了一个叫做装饰器的技术,所有的请求,都会添加一个相同的页面footer,但是404和500页面不要弄,现在假若访问一个不存在的URL:http://ip:port/myproject/action/aaaaa,这样就会被jfinal捕捉到,然后响应我那个404页面,结果就添加那个公共的页面footer了,所以希望能关闭这个jfinal捕捉的动作)500页面也是,如果我弄一个action,里面特意抛出一个异常,这样就会跳转到我指定的500页面,但是这个页面就会被装饰器捕捉到,就会添加一个页面footer,这是我不想要的。

PS:其次jfinal默认有自己的一个404和500页面,希望当我们程序员没有配置的时候,jfinal是转给容器,而不是自己拿着显示一个带有“Powered by JFinal 2.1”的宣传页面。

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

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

发布评论

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

评论(4

多情癖 2021-12-01 23:44:09

没错,还可通过扩展IErrorRenderFactory来直接接管404、500 error页面,这招更方便彻底,一时忘了这个方案了,感谢分享 ^_^

醉酒的小男人 2021-12-01 23:31:37

@michaely 你比作者本人还用得好了哈

孤独患者 2021-12-01 22:17:47

回复
以后多多支持 jfinal 发展啊

简单气质女生网名 2021-12-01 19:48:46
public class JErrorRenderFactory extends FreeMarkerRender implements IErrorRenderFactory {
	
	private int errorCode;
	
	public JErrorRenderFactory() {
		super(null);// FreeMarkerRender view,init view in render() method
	}

	@Override
	public Render getRender(int errorCode, String view) {
		this.errorCode = errorCode;
		return this;
	}

	@Override
	public void render() {
          //do you render 
        }

}

JFinal配置里设置错误处理工厂:

public void configConstant(Constants constants) {
		
		constants.setErrorRenderFactory(new JErrorRenderFactory());
		
	}

over!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文