Java 如何将参数化方法传递给Struts 2操作的method属性?

Java 如何将参数化方法传递给Struts 2操作的method属性?,java,configuration,struts2,ognl,Java,Configuration,Struts2,Ognl,我将使用like表达式从数据库中搜索数据。我的方法如下所示: public List<Item> getData(String qString){ return itemJpa.getSuggestedData(qString); } 可能吗?如果是,我该怎么做?您不能将操作映射到签名中包含参数的方法,也不能返回字符串以外的结果。您可以做的是创建另一个方法,例如doData 除此之外,您还需要知道,映射到操作的类应该是一个合格的Javabean,它有一个默认的无参数构造函数,

我将使用like表达式从数据库中搜索数据。我的方法如下所示:

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

可能吗?如果是,我该怎么做?

您不能将操作映射到签名中包含参数的方法,也不能返回字符串以外的结果。您可以做的是创建另一个方法,例如doData


除此之外,您还需要知道,映射到操作的类应该是一个合格的Javabean,它有一个默认的无参数构造函数,或者根本没有构造函数。在这种情况下,使用隐式默认构造函数。当您向这个动作配置映射的动作发出请求时,Struts将实例化bean。所以,要做到这一点,你应该遵循这些简单的规则。

你能更清楚地知道你到底想要什么吗?或者可能是我无法理解你的问题,在我的索引页上有一个搜索框。它是一个自动完成下拉列表。当我按enter键时,我需要查看我使用的数据库中的所有数据,比如表达式。那么,您的问题是什么?比如你在哪里被折磨?数据没有被查看..你是如何提交表单的?您可以在jsp操作配置中始终指向方法名,甚至可以在XML文件中使用方法名
<action name="DummyDB" class="com.shopping.op.welcome.DummyDB" method="**In Here**"></action> 
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>