簡體   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