目前,我有一个带有提交按钮的Stripes表单,该按钮绑定到以下ActionBean的“search”方法:
public class SearchRepairActionBean extends BaseActionBean {
private String searchType;
private String searchValue;
@DefaultHandler
public Resolution defaultHandler(){
return null;
}
@HandlesEvent("search")
public Resolution search(){
return new ForwardResolution("SearchRepairResult.action").addParameter("searchType", searchType).addParameter("searchValue", searchValue);;
}
public String getSearchType() {
return searchType;
}
public void setSearchType(String searchType) {
this.searchType = searchType;
}
public String getSearchValue() {
return searchValue;
}
public void setSearchValue(String searchValue) {
this.searchValue = searchValue;
}
}
SearchRepairResultActionBean尝试解决它:
public class SearchRepairResultActionBean extends BaseActionBean {
private String searchType;
private String searchValue;
@DefaultHandler
public Resolution defaultHandler(){
return new ForwardResolution("/jsp/searchRepairResult.jsp");
}
@HandlesEvent("SearchRepairResult")
public Resolution SearchRepairResult(){
System.out.println(searchType);
System.out.println(searchValue);
}
public String getSearchType() {
return searchType;
}
public void setSearchType(String searchType) {
this.searchType = searchType;
}
public String getSearchValue() {
return searchValue;
}
public void setSearchValue(String searchValue) {
this.searchValue = searchValue;
}
}
问题是当我尝试打印“searchType”和“searchValue”时 - 它们返回null。我传递的参数不正确吗?这样做的最佳方式是什么?
答案 0 :(得分:1)
当然可以传递参数。
还有其他几种可能性,但如果没有看到确切的代码,这可能是最好的情况。您可能错过了它,因为它实际上是超类(OnwardResolution)的一种方法。
它是可链接的,因此如有必要,您可以连续多次调用它。
return new ForwardResolution(BarActionBean.class,"barevent").addParameter("ducks",ducks);
答案 1 :(得分:1)
为什么通过致电type
来获得value
和getContext().getRequest().getParameter()
?您应该能够像SearchRepairResultActionBean
一样拥有方法:
public void setType(String type) {
this.type = type;
}
public void setValue(String value) {
this.value = value;
}
然后Stripes会在调用您的事件方法之前注入必要的值(作为LifecycleStage.BindingAndValidation
的一部分)。
实际上,就此而言,为什么要将SearchRepairActionBean
与SearchRepairResultActionBean
分开?如果“结果”页面需要查看来自提交到search
事件的表单的数据,那么为什么不在search()
上的SearchRepairActionBean
方法中执行操作,然后对你的观点进行ForwardResolution
吗?在这里使用两个ActionBeans是否有特殊原因?