02struts2注解开发(零配置)总结

2023-03-18 16:19:18   第一文档网     [ 字体: ] [ 阅读: ] [ 文档下载 ]
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。下载word有问题请添加QQ:admin处理,感谢您的支持与谅解。点击这里给我发消息

#第一文档网# 导语】以下是®第一文档网的小编为您整理的《02struts2注解开发(零配置)总结》,欢迎阅读!
注解,02struts2,配置,总结,开发

一、使用注解开发(零配置的方式)

从struts2.1开始,struts2 引入了Convention插件来支持零配置

使用约定无需struts.xml或者Annotation配置

需要 struts2-convention-plugin-2.3.7.jar 、asm-*.jar(三个)

插件会自动搜索action、actions、struts、struts2包下所有Java类

所有实现了com.opensymphony.xwork2.Action的Java类

所有类名以Action结尾的Java类

下面类名都符合Convention插件

cn.itcast.struts2.HelloAction

cn.itcast.actions.books.BookSearchAction

cn.itcast.struts.user.UserAction

cn.itcast.estore.action.test.LoginAction

查看常量

struts.convention.package.locators

struts.convention.exclude.packages

二、struts2-convention-plugin-2.3.7.jar 中struts-plugin.xml重要常量

<constant name="struts.convention.package.locators" value="action,actions,struts,struts2"/> 默认扫描包

<constant name="struts.convention.exclude.packages" value="org.apache.struts.*,org.apache.struts2.*,org.springframework.web.struts.*,org.springframework.web.struts2.*,org.hibernate.*"/> 不扫描

<constant name="struts.convention.action.suffix" value="Action"/> 默认扫描以Action结尾的类

<constant name="struts.convention.result.path" value="/WEB-INF/content/"/> 结果result页面存放位置

<constant name="struts.convention.classes.reload" value="false" /> Action类文件重新自动加载

三、Convention的Action命名约定

如果Action类名包含Action后缀,将Action后缀去掉

将Action类名的驼峰写法,转成中划线写法

例如:

cn.itcast.struts2.HelloAction 映射到 /hello.action

cn.itcast.actions.books.BookSearchAction 映射到 /books/book-search.action

cn.itcast.struts.user.UserAction 映射到 /user/user.action

cn.itcast.estore.action.test.LoginAction 映射到 /test/login.action

四、Convention的Result命名约定

默认情况下,Convention总会到Web应用的WEB-INF/content路径下定位结果资源

<constant name="struts.convention.result.path" value="/WEB-INF/content/"/>

约定: actionName + resultCode + suffix

例如:

访问cn.itcast.struts.user.UserAction返回success

Convention优先使用 WEB-INF/content/user/user-success.jsp

如果user-success.jsp不存在,会使用user-success.html

如果user-success.html不存在,会使用user.jsp

/**

* 通过注解 可以覆盖约定的效果

* @author seawind

*

*/

@Namespace("/user")

@ParentPackage("struts-default")

public class UserAction extends ActionSupport{

@Override

// 按照约定规则 /user.action访问

@Actions(value={@Action(value="login",results={@Result(name="success",location="/index.jsp")})

, @Action(value="test",results={@Result(name="success",location="/index.jsp")})

})

public String execute() throws Exception {

System.out.println("用户登陆");

return SUCCESS;

}

}

本文来源:https://www.dywdw.cn/4f0ccb217fd184254b35eefdc8d376eeaeaa171b.html

相关推荐
推荐阅读