Struts 2的零配置其实不是所有配置都不需要了,主要是靠注解和规则进行配置。零配置主要是在编写Action的同时,简化了struts.xml的配置方式。据说在struts2.1后零配置将整合入codebehind,本工程使用的还是struts2.0.11 我们来看一下项目所需要的jar包,主要是增加codebehind插件。
配置web.xml <!-- 配置Struts 2框架的核心Filter --> <filter> <filter-name>struts</filter-name> <filter-class> org.apache.struts2.dispatcher.FilterDispatcher </filter-class> <init-param> <param-name>actionPackages</param-name> <param-value>com.hopeteam.struts.action</param-value> </init-param> </filter> <filter-mapping> <filter-name>struts</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
在struts的过滤器中增加actionPackages,以及配置atcion的包com.hopeteam.struts.action。如果某个Action位于其子包下,如com.hopeteam.struts.action.test.testZeroAction,则零配置可以自动识别test作为testZeroAction的namespace。
testZeroAction.java的代码如下: package com.hopeteam.struts.action.test;
import org.apache.struts2.config.NullResult; import org.apache.struts2.config.Result; import org.apache.struts2.config.Results;
@Results({ @Result(name="success", type=NullResult.class, value = "/success.jsp", params = {}), @Result(name="error", type=NullResult.class, value = "/error.jsp", params = {}) }) public class testZeroAction { private String tip; public String getTip() { return tip; }
public void setTip(String tip) { this.tip = tip; }
public String execute() { tip ="Struts2 Zero Configuration测试成功"; return "success"; } }
success.jsp的代码如下: <%@ page language="java" contentType="text/html; charset=GBK"%> <%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <title>success</title> <meta. http-equiv="Content-Type" content="text/html; charset=GBK"> </head> <body> <s:property value="tip"/> </body> </html>
Struts.xml如下: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
</struts>
让我们看看部署情况,在浏览器下输入 http://localhost:8080/Struts2ZeroConfig/test/testZero.action,其中Struts2ZeroConfig为工程的名称,test为namespace,testZero为testZeroAction的默认配置.
附件:
|