2012-03-07 34 views
2

我正在開發一個使用stripesframework的Web應用程序並出現問題。我發現了一個工作,但我想知道它爲什麼發生。條紋不會調用所需的事件處理程序

我寫了一個類等,其中基於主題頁面,從該行動呼籲SUBJECT_TYPE和SUBJECT_NAME變化

@UrlBinding("/subject/{subject_type}/{subject_name}") 
public class SubjectActionBean extends ActionBean { 
    private String subjectType; 
    private String subjectName; 
    @Validate(required = true) 
    public void setSubjectName(String subjectName) { 
     this.subjectName = subjectName; 
    } 

    @Validate(required = true) 
    public void setSubjectType(String subjectType) { 
     this.subjectType = subjectType; 
    } 
    @DefaultHandler 
    public Resolution view() { 
     return new Resolution(); 
    } 
} 

。所以一個電話會是localhost/subject/applied/math。

直到這裏它工作正常。問題發生了,當我試圖創建一個remove方法

@HandlesEvent("remove") 
    public void removeSubject() { 
} 

,並呼籲它使用本地主機/主題/應用/數學/刪除 在這一點上的條紋就開始抱怨,有沒有處理的呼叫,也有無默認處理程序。

所以,我在路徑「{SUBJECT_TYPE}/{} SUBJECT_NAME」刪除,並通過它們作爲參數和方法內使用解壓它們:

getContext().getRequest().getParameter(); 

這使得remove方法來調用。

我現在的問題是爲什麼「{subject_type}/{subject_name}」使分條無法找到remove方法。

回答

4

嘗試改變@UrlBinding以下幾點:

@UrlBinding("/subject/{subject_type}/{subject_name}/{$event}") 

沒有{$event}條紋不能告訴其URL參數的一部分應該是該事件。

此外,測試你可以嘗試(與當前@UrlBinding)訪問localhost/subject/applied/math?remove=

希望有所幫助。

相關問題