[英]Struts2 Convention Plugin Results Using Inheritance
有沒有辦法讓 struts2 約定插件使用超級 class 的結果?
我正在嘗試創建一個通用 CRUD,如果子 class 中沒有實現,則使用通用結果。 這可能嗎?
是的你可以。
例如:
一般 CRUD
@Results({
@Result(name = "input", location = "input.jsp"),
@Result(location = "input.jsp")
})
public abstract class CrudActionSupport extends ActionSupport {
@Action("update/{entityId}") // wildcard mapping
public String actionUpdate() {
return SUCCESS;
}
}
行動
public class PersonAction extends CrudActionSupport {
}
CrudActionSupport處的注釋將始終有效,除非它在子類中被覆蓋。
例如
@Results({
@Result(name = "input", location = "person.jsp"),
@Result(location = "person.jsp")
})
public class PersonAction extends CrudActionSupport {
@Override
public String actionUpdate() {
return SUCCESS;
}
// or
/*
@Action("update/{id}")
@Override
public String actionUpdate() {
return SUCCESS;
}
*/
}
它不是 Struts2 的設施。 可以建造這樣的設施,但還有其他方法可以產生您正在尋找的效果。
我建議此時使用通配符映射。 它可以做您需要的事情,並且可以與約定插件很好地配合使用(struts.xml 規則優先於約定)。 特定於操作的注釋或 xml 優先於通配符映射。 換句話說,它按照您期望的方式工作,只需嘗試一下。
這樣的事情真的是我發帖的原因: Is it possible to use wildcard method invocation in Struts2 with conventions plugin using only annotations? 雖然我在想也許 package 級別的注釋可以完成通配符的工作。 無論如何,最終結果將類似於您想要對超類執行的操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.