首先是web.xml的配置
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/webservice/*</url-pattern>
</servlet-mapping>
我用的struts2的版本是2.3.4.1,所以这里的<filter>应该是StrutsPrepareAndExecuteFilter,不再是旧的DispatcherFilter
另外这里的<filter-mapping>,我配的不是/*,而是*.action,目的是不把特殊路径的请求,交给struts2处理,比如下面的/webservice/*,就不要经过struts2
下面是struts.xml的配置
<package name="bookManage" extends="json-default" namespace="/book">
<interceptors>
<interceptor name="loginInterceptor" class="loginInterceptor" />
<interceptor-stack name="secureStack">
<interceptor-ref name="loginInterceptor" />
<interceptor-ref name="defaultStack" />
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="secureStack" />
<global-results>
<result name="login" type="redirectAction">../login.action</result>
</global-results>
<action name="list" class="bookAction" method="list">
<result name="success">../jsp/bookManage/bookList.jsp</result>
</action>
<action name="delete" class="bookAction" method="delete">
<result name="success" type="redirectAction">list.action</result>
</action>
<action name="originAjax" class="bookAction" method="originAjax" />
<action name="pluginAjax" class="bookAction" method="pluginAjax">
<result type="json">
<param name="excludeNullProperties">true</param>
</result>
</action>
</package>
以上的配置有简化,分别针对4种不同的场景:
第一种,Action处理后跳转到jsp页面
<action name="list" class="bookAction" method="list">
<result name="success">../jsp/bookManage/bookList.jsp</result>
</action>
这里默认的resultType是dispatcher
对应的Action写法
public String list() {
books = bookService.getAllBooks();
return SUCCESS;
}
第二种,Action处理后,流转到另外一个Action,相当于Servlet规范中的redirect
<action name="delete" class="bookAction" method="delete">
<result name="success" type="redirectAction">list.action</result>
</action>
这里的resultType是redirectAction
对应的Action写法
public String delete() {
bookService.deleteBookById(id);
return SUCCESS;
}
第三种,在Action中直接写响应,不流转
<action name="originAjax" class="bookAction" method="originAjax" />
这里就没有<result>元素
对应的Action写法
public void originAjax() throws IOException {
HttpServletResponse response = ServletActionContext.getResponse();
PrintWriter writer = response.getWriter();
writer.print("hello " + ajaxField);
writer.flush();
writer.close();
}
第四种,通过json插件,返回json字符串,不流转
<action name="pluginAjax" class="bookAction" method="pluginAjax">
<result type="json">
<param name="excludeNullProperties">true</param>
</result>
</action>
这里的resultType是json,这种方式本质上和第三种一样
对应的Action写法
public String pluginAjax() {
ajaxField = "hello " + ajaxField;
return SUCCESS;
}
另外,这里面配置了拦截器、拦截器栈、全局result,可以把这些东西提取到公共的package里,让其它的业务子package来extends
分享到:
相关推荐
struts2配置文件以及代码示例struts2配置文件以及代码示例struts2配置文件以及代码示例struts2配置文件以及代码示例struts2配置文件以及代码示例struts2配置文件以及代码示例struts2配置文件以及代码示例struts2配置...
struts2配置过滤器 示例代码
struts2 Https , 轻松开发基于struts2的https开发
javaEE学习阶段,struts2初步使用环境配置。 javaEE学习阶段,struts2初步使用环境配置。
Struts2配置详解,Struts2配置详解,Struts2配置详解,Struts2配置详解,Struts2配置详解
struts2必备的包和配置文件struts2必备的包和配置文件struts2必备的包和配置文件struts2必备的包和配置文件struts2必备的包和配置文件
struts2+spring+hibernate 配置文件struts2+spring+hibernate 配置文件
配置Struts配置Struts配置Struts配置Struts配置Struts配置Struts
struts2 配置dtd 自动提示 struts2 配置dtd 自动提示
以前和struts2一起使用的配置文件,struts2的核心控制器
Struts框架中struts-config.xml文件配置小结
一个简单的struts2的手动配置一个简单的struts2的手动配置一个简单的struts2的手动配置
struts2配置文件 struts2代码
freemarker与struts2详细配置.
struts2核心配置文件,struts2.xml和struts2.properties
1. 导入的包 <br>l struts2的五个基础包:commons-logging-1.1.jar; <br>freemarker-2.3.8.jar; <br>ognl-2.6.9.jar; <br>struts-core-2.0.6.jar; <br>xwork-2.0.0.jar. <br>l spring的核心包:...
关于struts2 Result的配置,有例子
讲述了配置struts2的三种方法:struts.xml struts.properties web.xml
struts2 配置文件 jar 包括web.xml struts.xml