傳統 Java Web 框架(Struts 1/2)為解耦引入大量 XML 配置,導致學習曲線陡峭、開發效率低下。Stripes 吸收 Ruby on Rails「約定優於配置」精髓,僅需 web.xml 配置核心 Servlet/Filter,其餘通過註解與命名約定自動完成映射,極大提升產出效率。

圖 1、典型 Stripes 流程
ActionBean 接口的 POJO,自動注入 ActionBeanContext(訪問 Request/Response/Session)public Resolution eventName(),@DefaultHandler 標記默認事件ForwardResolution(轉發)、RedirectResolution(重定向)、StreamingResolution(流輸出)等public class HelloWorldAction implements ActionBean {
@ValidateNestedProperties({
@Validate(field="firstName", required=true, on="hello"),
@Validate(field="age", required=true, minvalue=13, on="hello")
})
private Person person;
@DefaultHandler
public Resolution index() { return new ForwardResolution("Hello.jsp"); }
public Resolution hello() { return new ForwardResolution("SayHello.jsp"); }
// getter/setter + ActionBeanContext 注入
}
驗證註解直接寫在屬性上,on 指定生效事件,錯誤消息自動生成(如 Person First Name is a required field),無需外部配置。
<stripes:form beanclass="com.example.HelloWorldAction">
<stripes:text name="person.firstName"/>
<stripes:text name="person.age"/>
<stripes:submit name="hello" value="Say Hello"/>
</stripes:form>
beanclass 直接綁定 Action 類,重構時自動同步 URLname 對應屬性路徑,支援巢狀對象、集合、索引屬性submit 的 name 決定觸發哪個事件方法StripesFilter 啟動掃描 /WEB-INF/classes 下所有 ActionBean 實現類Action/Bean 後綴 → 點號改斜槓 → 加 .action 後綴com.myco.web.stripes.action.example.HelloWorldAction → /example/HelloWorld.actionDispatcherServlet 攔截 *.action,查表實例化 Action,解析事件參數執行對應方法優勢:URL 即類名,無需跳轉配置文件;新增 Action 即自動生效,零維護成本。
JSP 引入 Prototype,按鈕 onclick 調用 Ajax.Updater 異步請求 Action 事件(event=sayHelloAjax),局部刷新 div。Action 新增 sayHelloAjax() 返回片段視圖,極簡實現無刷新交互。
僅需 Spring 上下文配置,Action 中聲明屬性 + @SpringBean 註解即可自動注入:
@SpringBean
public void setPersonService(PersonService service) { this.personService = service; }
無額外 XML、無代理工廠,極致簡潔。
Stripes 以 Java 5 註解與泛型為槓桿,撬起「簡單而高效」的開發體驗。它證明了 Java Web 框架不必龐大繁雜,約定優於配置、註解驅動驗證、零 XML 映射,讓開發者聚焦業務邏輯。對於尋求輕量、高產、類 Rails 體驗的 Java 團隊,Stripes 是極佳選擇。