繁体   English   中英

填写Struts2时机 <s:property> JSP页面中的标签

[英]Struts2 timing on filling in <s:property> tags in JSP page

我有一个简单的struts2 Web应用程序,其中包含一个动作类和一个拦截器。 动作类具有getter方法getTitle() ,该方法从会话中获取字符串。 拦截器位于默认堆栈的底部,因此它在调用之后最后一次执行。 它的构建方式使其可以在操作调用之前和之后调用之后修改会话中的标题。 然后,出现的JSP页面将显示此标题。

我认为以下逻辑将适用:

  1. 调用运行之前的拦截器逻辑
  2. 动作类逻辑运行
  3. 调用运行后的拦截器逻辑
  4. struts知道结果并在结果中获取.jsp
  5. struts填充.jsp中的<:s>标记,并从操作类中调用getTitle()

但是,这没有用。 生成的JSP始终显示标题,与执行步骤3之前的标题相同。 我在Java代码中添加了一些简单的日志记录,这证实了我的怀疑。 这是执行顺序:

  1. 日志:调用运行之前的拦截器逻辑
  2. 日志:动作类逻辑运行
  3. 日志:动作类运行中的getTitle()方法
  4. 日志:调用运行后的拦截器逻辑

因此,第6步就变成了第3步。为什么要这样做,以及如何在我的拦截器AFTER操作调用中添加逻辑以更改标题?

果壳:实现PreResultListener以使某些事情在渲染之前发生,但在调用之后发生。

http://struts.apache.org/release/2.3.x/docs/writing-interceptors.html

我不知道title是什么,但是我很难理解为什么与页面标题或域对象中的书名或其他内容相关的任何东西都需要:

  1. 被某个动作取回,或
  2. 被拦截器改变

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM