簡體   English   中英

如何將參數化方法傳遞給Struts 2動作的method屬性?

[英]How to pass a parameterised method to a Struts 2 action's method attribute?

我將使用like表達式從數據庫中搜索數據。 我的方法如下所示:

public List<Item> getData(String qString){
   return itemJpa.getSuggestedData(qString);
}

我的目的是當我向qString變量輸入查詢字符串時,我需要獲取列表中的數據。 我正在使用Struts2。 我需要將此方法映射到struts操作的method屬性。

<action name="DummyDB" class="com.shopping.op.welcome.DummyDB" method="**In Here**"></action> 

可能嗎? 如果是我該怎么辦?

您不能將動作映射到在簽名中具有參數的方法,也不能返回String以外的結果。 您可以做的是創建另一個方法,例如doData()

private List<Item> data;
//getter and setter

public String doData() {
  data = getData(qString);
  ...
  return Action.SUCCESS;
}

<action name="DummyDB" class="com.shopping.op.welcome.DummyDB" method="doData">
 <result>/jsp/whateveryoudo.jsp</result>
</action>

除此之外,您需要知道映射到該動作的類應該是合格的Java bean,它具有默認的no-arg構造函數或根本沒有構造函數(在這種情況下,使用隱式默認構造函數)。 當您請求由該動作配置映射的動作時,Struts將實例化bean。 因此,要使其能夠工作,您應該遵循以下簡單規則。

暫無
暫無

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

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