struts2基础

1、到官网下载解压以后
apps:struts2的示例
docs:文档、api
lib:核心类库,jar包
struts2的配置文件有两份:配置action的struts.xml文件 配置struts2全局属性的struts.properties文件
struts.devMode = false //指定struts2处于开发状态
struts.configuration.xml.reload=true //指定当配置文件改变时,自动重新加载配置文件
struts2的控制器由两个部分组成:FilterDispatcher和业务控制器Action
Action类优点:Action类是一个pojo,具有很好的代码复用性,无需与servlet Api耦合,方便单元测试,execute方法仅返回一个字符串,该处理结果可以映射到任何视图,甚至是另一个Action。
2、需要使用的jar包
struts2-core-2.1.8.1.jar xwork-core-2.1.6.jar ognl-2.7.3.jar commons-logging-1.0.4.jar
freemarker-2.3.12.jar commons-io-1.3.2.jar commons-fileupload-1.2.1.jar
7个包为必须使用的包


3、编辑web应用的web.xml配置文件,配置struts2的核心Filter
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<!-- FilterDispatcher用来初始化struts2并且处理所有的WEB请求。 -->
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

struts2默认拦截所有后缀为.action的请求。因此,如果将Action属性设置为*.action格式就可以被struts2拦截。

导入jar包->配置->Action

4、struts2对请求的响应过程是典型的AOP(面向前面编程)处理方式

小例子:
struts:
<package name="mystruts" extends="struts-default" >
<action name="login" class="system.LoginAction">
<result type="chain">book</result>
<result name="error">/hello.jsp</result>
</action>
<action name="book" class="action.BookAction">
<result name="success">/test/book.jsp</result>
<result name="error">/hello.jsp</result>
</action>
</package>
BookAction:
public String execute() throws Exception {
String user = (String) ActionContext.getContext().getSession().get("user");
if (user.equals("tiger")) {
BookService bs = new BookService();
setBooks(bs.getBookList());
return SUCCESS;
}else {
return ERROR;
}
}
book.jsp:
<body>
<table border="1" width="360">
<s:iterator value="books" status="index">
<s:if test="#index.odd==true">
<tr style="background-color: #cccccc">
</s:if>
<s:else>
<tr>
</s:else>
<td><s:property /></td>
</tr>
</s:iterator>
</table>
<%
ValueStack vs = (ValueStack) request
.getAttribute("struts.valueStack");
String[] books = (String[]) vs.findValue("books");
for (String b : books) {
%>
<tr><%=b%></tr>
<%
}
%>
</body>

原文地址:https://www.cnblogs.com/ikuman/p/2239472.html