簡體   English   中英

在Pretty-Faces中加載視圖后如何執行方法

[英]How to execute a method after loading the view in Pretty-Faces

單擊鏈接並加載新頁面后,我想執行一個方法。 我嘗試將<action/> 標記為,但這也沒有幫助:

<url-mapping id="myApp/seller/addProduct">
    <pattern value="/myApp/seller/addProduct" />
    <view-id value="/pages/seller/add_product.xhtml" />
    <action onPostback="false">#{myBean.barMethod}</action>
    <action>#{myBean.myMethod}</action>
</url-mapping>

@Bean
public class MyBean{
   //source code omitted
   public void myMehtod(){
      //source code omitted
   }
}

我嘗試調試方法執行。 頁面加載后再也不會進行調用。 請問該如何解決?

更新:經過幾個小時的調試,我得出的結果是總是執行第一個動作myBean.barMethod()而第二個myBean.myMethod()從未執行,這我幾乎不明白為什么?

您不能使用pretty-config.xml直接將參數傳遞給操作方法,您需要將值綁定到bean屬性,如下所示:

https://www.ocpsoft.org/docs/prettyfaces/3.3.3/zh-CN/html/Configuration.html#config.pathparams

<url-mapping id="viewItem"> <pattern value="/store/item/#{ iid : bean.itemId }/" /> <view-id value="/faces/shop/item.jsf" /> <action>#{bean.loadItem}</action> </url-mapping>

此外,如果導航是由先前的操作方法調用的,則將不會執行第一個方法以外的后續操作方法:

https://www.ocpsoft.org/docs/prettyfaces/3.3.3/zh-CN/html/Configuration.html#config.actions.navigation

就是說,如果您不從URL綁定值,為什么不只在Bean中調用其他方法,或者獲取要以其他方式傳遞的值?

在1.2x及更高版本的JSF中,可以在第一次呈現頁面時調用的bean方法上使用@PostConstruct。

在您的情況下,將頁面add_product.xhtml綁定到Bean,並裝飾要使用@PostConstruct調用的方法

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM