我有一个使用Struts 2的Web应用程序。我将i18n拦截器与所有默认设置一起使用。我认为该拦截器的工作方式如下:
因此,在我的操作类(实现sessionAware)中,我具有以下方法:
public String getUserLocale()
{
return (String) session.get("WW_TRANS_I18N_LOCALE");
}
但是,此方法在情况#2中不起作用,它仅返回null。所以我的问题是:如果没有明确的请求参数,我如何让我的操作知道i18n拦截器检测到的用户区域设置?因为它没有存储在会话中?
您不应将拦截器定义的会话密钥用于内部用途,以获取操作区域设置。
如果拦截器request_locale
检测到参数,则i18n
创建请求的语言环境,并将其置于操作上下文以及拦截器指定的键下的会话中。
如果对拦截器的下一个请求不包含request_locale
参数,则它将获取保存在会话中的语言环境,如果未找到,则使用请求语言环境。
拦截器再次将返回的语言环境放置到动作上下文中。因此,要获取供struts标记使用的语言环境,应使用
Locale locale = ActionContext.getContext().getLocale();
问题内容: 我有带有不同(HTML和JSON)结果类型的Struts2操作。他们使用通用拦截器。 如果需要拦截请求,如何根据给定的操作结果类型返回结果? 例如,我转发到JSP页面。如果操作是JSON类型,我想转发JSON错误。 问题答案: 我有带有不同(HTML和JSON)结果类型的Struts2操作。他们使用通用拦截器。如果需要拦截请求,如何根据给定的动作结果类型返回结果? 例如,我的Actio
我试图在javascript中为fetch创建一个拦截器(更具体地说是React)。它应该从每次调用的fetch中获取结果,如果是401错误,它应该向另一个路由发起新的fetch调用,以获取cookie(刷新令牌)。然后,应该再次尝试原始的fetch调用(因为现在用户已经登录)。 我已经成功地触发了新的fetch调用,并为每个调用发回了cookie,但我遇到了以下两个问题: 我似乎在使用async
我所做的是创建了两个按钮,当按下一个按钮时,就会启动一个意图,片段中的区域设置也会改变。我通过获取所需的区域设置值来实现这一点,将其转换为字符串并将其放入额外的值中。它在活动之间工作得很好,但当我将其设置为片段时,它给了我一个错误 这是我的代码。 发送额外信息的活动: 接收区域设置的片段: 这给了我这行的错误。 我还尝试做了很多事情,比如将接收代码放在另一个地方,将其放在管理片段的活动中,但没有奏
本文向大家介绍了解java Struts拦截器的相关操作,包括了了解java Struts拦截器的相关操作的使用技巧和注意事项,需要的朋友参考一下 实现aop的方式 用于实现action之前 一般用于事物操作. 一般用于对某些未授权的页面访问的时候,进行拦截操作,拦截非法访问. 开箱即用拦截器 必须有传递属性这个拦截器 运行输出日志如下 可以看到这个action一共运行耗时12ms 自定义拦截器
问题内容: 使用诸如或的库,是否有一种方法可以在设置了类字段的值时将字节码指令添加到类中以执行代码? 例如,假设我有此类: 假设一段代码包含此行: 我希望此指令被拦截,因此将标志设置为。我知道这对于setter方法是可能的-因为可以通过字节码操作来修改类方法,但是我想对 字段 做同样的事情。 这可能吗?如果可以, 怎么 办? 编辑 我想避免修改访问该类的代码部分,我正在寻找一种方法来将拦截代码保留
问题内容: 我试图在AngularJS中制作一个拦截器。我是AngularJS的新手,并找到了一些Interceptor的示例,但无法使其正常工作。 这里有我的app.js文件,其中包含所有相关代码。我还有一个控制器,该控制器调用REST api并返回JSONP。 首先,我声明模块,然后进行配置(定义拦截器)。现在它应该捕获所有请求并将其输出到控制台… 用app.factory创建拦截器是否错误?