http://struts.apache.org/2.x/
http://www.blogjava.net/max/
<o:p> </o:p>
Apache Struts 2 is an elegant, extensible framework for creating enterprise-ready Java web applications. The framework is designed to streamline the full development cycle, from building, to deploying, to maintaining applications over time.
Apache Struts 2 was originally known as WebWork 2. After working independently for several years, the WebWork and Struts communities joined forces to create Struts2. This new version of Struts is simpler to use and closer to how Struts was always meant to be.
<o:p> </o:p>
The goal of Struts2 is simple – to make web development easier
for the developer.To achieve this goal Struts2 provides features
to reduce XML configuration via intelligent defaults, utilizes
annotations and provides conventions over configuration.
(Struts2的目标——使用web开发更加简单为了实现,为了实现这个简单目标,
struts通过智能的默认值减少XML配置文件,利用java标注和习惯代替配置。)
<o:p> </o:p>
<o:p> </o:p>
Here are some of the features that may lead you to consider Struts2:
Action based framework
Mature with a vibrant developer and user community
Annotation and XML configuration options
POJO-based actions that are easy to test
Spring, SiteMesh and Tiles integration
OGNL expression language integration
Themes based tag libraries and <st1:city w:st="on"><st1:place w:st="on">Ajax</st1:place></st1:city> tags
Multiple view options (JSP, Freemarker, Velocity and
XSLT)
Plug-ins to extend and modify framework features
<o:p> </o:p>
The MVC/Struts2 Arichitecture
<o:p> <v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"> <v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype><v:shape id="_x0000_i1025" style="WIDTH: 414.75pt; HEIGHT: 244.5pt" type="#_x0000_t75"><v:imagedata o:title="" src="file:///C:\DOCUME~1\pengch\LOCALS~1\Temp\msohtml1\01\clip_image001.emz"></v:imagedata></v:shape></o:p>
<v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype><v:shape id="_x0000_i1025" style="WIDTH: 414.75pt; HEIGHT: 244.5pt" type="#_x0000_t75"><v:imagedata o:title="" src="file:///C:\DOCUME~1\pengch\LOCALS~1\Temp\msohtml1\01\clip_image001.emz"></v:imagedata></v:shape>
Figure 1 overlays the model, view and controller to the Struts2<o:p></o:p>
high level architecture. The controller is implemented with a<o:p></o:p>
Struts2 dispatch servlet filter as well as interceptors, the model is<o:p></o:p>
implemented with actions, and the view as a combination of<o:p></o:p>
result types and results. The value stack and OGNL provide<o:p></o:p>
common thread, linking and enabling integration between the<o:p></o:p>
other components.<o:p></o:p>
<o:p> </o:p>
<o:p> </o:p>
The value stack is exactly what it says it is – a stack of objects. OGNL<o:p></o:p>
stands for Object Graph Navigational Language, and provides<o:p></o:p>
the unified way to access objects within the value stack.<o:p></o:p>
<o:p> </o:p>
<o:p> </o:p>
实例代码分析(登陆例子):<o:p></o:p>
Login.java:<o:p></o:p>
import com.opensymphony.xwork2.ActionSupport;<o:p></o:p>
public class Login extends ActionSupport {<o:p></o:p>
private String name;<o:p></o:p>
private String password;<o:p></o:p>
private String message;<o:p></o:p>
public String getName(){<o:p></o:p>
return name;<o:p></o:p>
}<o:p></o:p>
public void setName(String name){<o:p></o:p>
this.name=name;<o:p></o:p>
}<o:p></o:p>
public String getpassword(){<o:p></o:p>
return password;<o:p></o:p>
}<o:p></o:p>
public void setPassword(String password){<o:p></o:p>
this.password=password;<o:p></o:p>
}<o:p></o:p>
public String getMessage(){<o:p></o:p>
return message;<o:p></o:p>
}<o:p></o:p>
public void setMessage(String message){<o:p></o:p>
this.message=message;<o:p></o:p>
}<o:p></o:p>
public String execute(){<o:p></o:p>
if("admin".equals(name)&&"admin".equals(password)){<o:p></o:p>
message="欢迎您"+name+"!";<o:p></o:p>
return SUCCESS;<o:p></o:p>
}else{<o:p></o:p>
message="The name or password is wrong!";<o:p></o:p>
return INPUT;<o:p></o:p>
} <o:p></o:p>
}<o:p></o:p>
}<o:p></o:p>
Struts.xml<o:p></o:p>
<?xml version="1.0" encoding="UTF-8"?><o:p></o:p>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"<o:p></o:p>
"http://struts.apache.org/dtds/struts-2.0.dtd"><o:p></o:p>
<struts><o:p></o:p>
<include file="struts-default.xml"/><o:p></o:p>
<package name="com.struts20" extends="struts-default" namespace="/"><o:p></o:p>
<o:p></o:p>
<action name="Login" class="com.struts20.Login"><o:p></o:p>
<result name="success">success.jsp</result><o:p></o:p>
<result name="input">login.jsp</result><o:p></o:p>
</action><o:p></o:p>
<o:p></o:p>
</package><o:p></o:p>
</struts><o:p></o:p>
Web.xml:<o:p></o:p>
<?xml version="1.0" encoding="UTF-8"?><o:p></o:p>
<web-app version="2.4" <o:p></o:p>
xmlns="http://java.sun.com/xml/ns/j2ee" <o:p></o:p>
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <o:p></o:p>
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee <o:p></o:p>
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"><o:p></o:p>
<display-name>struts2.0 test</display-name><o:p></o:p>
<filter><o:p></o:p>
<filter-name>struts2</filter-name><o:p></o:p>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class><o:p></o:p>
</filter><o:p></o:p>
<filter-mapping><o:p></o:p>
<filter-name>struts2</filter-name><o:p></o:p>
<url-pattern>/*</url-pattern><o:p></o:p>
</filter-mapping><o:p></o:p>
<welcome-file-list><o:p></
分享到:
相关推荐
首先,"struts2.0入门.rar"可能包含了基础的教程内容,涵盖了以下几个关键知识点: 1. **Struts2框架概述**:介绍Struts2的发展历程、优势和与Struts1的区别,以及在Java Web开发中的地位。 2. **环境配置**:讲解...
这个"学习Struts 2.0系列"教程涵盖了从基础到进阶的多个方面,旨在帮助开发者深入理解和掌握这一框架。 在12个章节中,我们可能会学习以下关键知识点: 1. **Struts 2.0简介**:了解Struts 2.0的核心概念,包括它...
学习Struts2.0的过程中,会涉及以下几个关键概念: 1. **Action类**:Action类是业务逻辑的实现,通常继承自`com.opensymphony.xwork2.ActionSupport`或自定义的基类。你需要覆盖execute()方法来执行具体业务逻辑,...
2. **为什么学习 Struts 2?** - 在现代 Web 开发中,Struts 2 框架提供了一种高效且模块化的应用构建方式。 - 它支持 MVC 设计模式,能够帮助开发者更好地组织代码结构。 - MVC 模式下: - 控制器(Controller)...
通过深入阅读这份"三大框架中文文档中的struts2.0开发手册",开发者不仅可以掌握Struts2.0的基础知识,还能学习到实际项目开发中的最佳实践,提升自己的编程技能。手册中可能还会包含实例代码、常见问题解答以及调试...
### Struts2.0学习教程知识点详析 #### 一、Struts2.0概览与优势 **标题与描述解读:** "Struts2.0学习教程PDF"这一标题明确指向了Struts2.0框架的学习资料,而描述中的“Struts 2.0 学习教程 中文pdf版 图例讲解...
总之,《Struts_2.0从入门到精通》一书全面覆盖了Struts2.0框架的核心概念和关键技术,从环境搭建到实际应用,从基础知识到进阶技巧,为读者提供了系统而深入的学习指南。无论是初学者还是有一定经验的开发者,都能...
Struts 2.0是Java Web开发中一个非常重要的MVC框架,它为构建基于J2EE...通过学习以上知识点,并结合提供的Struts 2.0参考手册,开发者可以更好地理解Struts 2.0的工作原理,从而更高效地构建和维护Java Web应用程序。
Struts2.0是Java Web开发中的一个强大框架,它基于MVC(Model-...对于想要深入学习Java Web开发的人来说,掌握Struts2.0的知识点是必不可少的。通过阅读提供的资料,你可以逐步理解并熟练运用这个框架,提高开发效率。
### Struts2.0 关键知识点解析 #### 一、Struts2.0 概述 Struts2.0 是一款基于 Java 的开源 Web 应用框架,它继承了 Struts1.x 的设计理念并在此基础上进行了大幅改进。Struts2.0 主要面向企业级应用开发,提供了一...
Struts2.0是Java Web开发中非常重要的一个框架,它是Apache软件基金会的Jakarta项目下的一个产品。这个框架主要用于构建MVC(Model-View-Controller)架构的应用程序,为开发者提供了一种更加灵活和强大的控制层解决...
这个都市供求信息系统全面展示了Struts2.0的使用,包括模型-视图-控制器的设计、数据库交互、用户认证、国际化支持等多个方面,为学习和实践Struts2.0提供了一个良好的平台。通过分析和重构这个项目,开发者可以深化...
读者可以通过这个文件深入学习Struts2.0的各个知识点,按照章节逐步学习,或者根据需要查找特定问题的解决方案。 总的来说,这本书对于想要学习或提升Struts2.0框架技能的开发者来说,是一份宝贵的资源。通过系统的...
4. **拦截器(Interceptor)**:学习Struts 2.0的拦截器机制,它是实现AOP(面向切面编程)的关键,可以用于日志记录、权限控制、数据校验等。 5. **结果类型(Result)**:了解各种内置Result类型,如dispatcher、...
这个压缩包文件包含了关于Struts2.0的经典书籍、源码以及标签的学习资源,对于想要深入理解和使用Struts2.0的人来说,是一份非常宝贵的资料。 首先,让我们从"经典书籍"入手。Struts2.0的书籍通常会涵盖以下知识点...
这个"Struts2.0培训课件"包含了深入学习和理解Struts2.0框架所需的关键知识点。 首先,我们要了解Struts2.0的核心特性。它引入了拦截器(Interceptor)机制,这是对请求处理流程进行拦截和扩展的关键。拦截器允许...
### Struts2.0中文教程知识点详述 #### 一、Struts2.0简介与特点 ##### 1.1 Struts2.0背景及优势 ...通过上述知识点的学习,开发者可以深入了解Struts2.0的核心概念和技术细节,从而更好地应用于实际项目开发中。
struts2.0实例源码(struts2是我写的struts2Deom是我下的资源项目一起给大家) 包括strust2.0的所有知识面,每个点我都写了详细注释 网上是很难找到这样的资料的,这是我个人学习笔记拿出来希望跟大家一起学习...
### Struts 2.0 in Action — 关键知识点解析 #### 一、Struts 2.0 概述 **Struts 2.0 in Action** 这本书深入介绍了Struts 2.0框架的核心概念及其应用实践。Struts 2.0是一个用于构建Java Web应用程序的开源框架...
通过学习,你将了解如何使用Struts2.0进行模块化开发,如何组织Action、Service、DAO层,以及如何结合Spring、Hibernate等其他框架实现更复杂的应用场景。 总的来说,Struts2.0中文教程将带领你一步步踏入Java Web...