Struts2是一个基于MVC设计模式的Java web框架,它极大地简化了开发过程,特别是对于处理用户请求和响应。以下是一些关于Struts2的重要知识点: 1. **拦截器(Interceptors)**: 在Struts2中,拦截器是处理请求的关键组件。如果没有在Action配置中指定`class`属性,那么Struts2会默认使用`com.opensymphony.xwork.ActionSupport`类。这个类包含了`input`和`execute`两个方法,它们分别返回`INPUT`和`SUCCESS`,决定请求的流向。如果Action没有指定具体的方法,`execute`通常作为默认执行方法。 2. **动态方法调用(DMI, Dynamic Method Invocation)**: 动态方法调用允许我们不直接以Action名称作为表单的`action`属性,而是以`actionName!methodName.action`的形式指定,这样可以根据不同的`methodName`调用Action的不同方法。 3. **Action映射(Action Mapping)**: 通过配置如`<action name="*"> <result>/{1}.jsp</result></action>`,我们可以让每个Action映射到以其名字命名的JSP页面上。这提供了灵活的视图路由。 4. **Action属性与表单数据绑定**: Action类可以定义自己的属性并提供对应的getter和setter方法。当客户端提交表单时,Struts2会自动调用setter方法将表单数据注入到Action中。例如,可以通过`ActionContext.getContext().put("newsList", newsList)`将新闻列表存入上下文,然后在页面上通过`<s:iterator value=”newsList”>`标签遍历并显示列表内容。 5. **代码运行结果**: 在给出的Java代码中,`main`方法的循环实际上没有改变`j`的值,因为`j = j++`是一个赋值操作,而不是自增操作。所以最后输出的`j`值是`0`。 6. **POJO数据绑定**: Struts2支持直接使用POJO对象来处理表单数据,Action中可以直接定义与表单字段同名的属性,Struts2会自动进行数据绑定,无需像Struts1那样使用`request.getParameter()`。如果有多条数据,可以封装到一个类(如`User`)中,Action只需引用这个类,页面上的表单字段需与类属性对应。 7. **迭代标签(Iterating Tags)**: `s:iterator`是Struts2用于循环输出集合内容的标签。在Action中,需要先将集合如`newsList`放入ActionContext,然后在页面上通过`s:property`标签分别显示集合中每个对象的属性值。 8. **数据校验和结果处理**: Struts2还提供了强大的数据校验功能,可以通过注解或XML配置对Action的属性进行验证,失败时会返回特定的结果,如`input`结果,使页面能够重新显示错误信息。 9. **国际化(Internationalization, i18n)**: Struts2支持多语言环境,可以通过资源包(Properties文件)来实现界面文本的国际化。 10. **结果类型(Result Types)**: 结果类型定义了请求完成后如何处理,例如转发、重定向等。默认的`dispatcher`结果类型会将请求分发到一个视图,而`redirect`则会发起一个新的HTTP请求。 以上是对Struts2框架主要特性和用法的概述,包括拦截器、动态方法调用、Action映射、数据绑定、迭代标签等,这些都是理解和使用Struts2进行web开发的基础。
剩余19页未读,继续阅读
- 粉丝: 2
- 资源: 20
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助