我有一个通过注释配置的Struts2 Action Class。所有使用@Action注释的“普通”方法都可以正常工作。
但是,我需要在返回JSON的操作中添加一个方法。
这是我班级的精简版(dao用Spring自动装配):
@Namespace("featureClass")
// define success and input actions for class here
public class FeatureClassAction extends ActionSupport {
FeatureClassDao featureClassDao;
@Autowired
public setFeatureClassDao(FeatureClassDeao featureClassDao) {
this.featureClassDao = featureClassDao;
}
List<FeatureClass> featureClasses;
// snip normal actions
@Action("/featureClassesJSON")
@JSON
public String getFeatureClassesJSON() throws Exception {
featureClasses = featureClassDao.getAll();
return SUCCESS;
}
}
有人可以帮忙吗?如果我必须使用struts.xml路由,那意味着将所有其他操作(可以正常工作)移入其中。
答案 0 :(得分:7)
我想我会分享答案,因为其他有同样问题的人也可能会面对沉默。
我创建了两个动作:FeatureClassAction和FeatureClassJsonAction。 FeatureClassAction注释如下:
@ParentPackage("struts-default")
@Namespace("/featureClass")
public class FeatureClassAction extends ActionSupport {
FeatureClassJsonAction注释如下:
@ParentPackage("json-default")
@Namespace("/featureClass")
public class FeatureClassJsonAction extends ActionSupport {
JSON Action中的方法注释如下:
@Action(value="featureClassesJson", results = {
@Result(name="success", type="json")
})
public String getFeatureClassesJSON() throws Exception {
希望它有所帮助。