`
summerkai
  • 浏览: 94305 次
  • 性别: Icon_minigender_2
  • 来自: 农村
社区版块
存档分类
最新评论

实现一个简单的Struts2.0

阅读更多

原文地址:http://www.blogjava.net/hawk8359/archive/2008/01/11/174319.html (作者J2ee-zero

 

Struts2.0属于Web框架,MVC 2模型,其实和以前的Struts1.x没有什么关系,新手可以不用去学。
因为Struts2.0是Webwork2.2演变而来。

第一步:创建Web工程

要使用Struts2.0先要去下载包
http://people.apache.org/builds/struts/2.0.10/struts-2.0.10-lib.zip

打开struts-2.0.10-lib.zip\struts-2.0.10\lib
把里面commons-logging-1.0.4.jar;freemarker-2.3.8.jar;ognl-2.6.11.jar;struts2-core-2.0.11.jar;xwork-2.0.4.jar五个包解压出来,拷贝到你的Web工程的WebContent/WEB-INF/lib下

第二步:配置web.xml文件

<filter>
  
<filter-name>struts</filter-name>
  
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
  
<filter-name>struts</filter-name>
  
<url-pattern>/*</url-pattern>
</filter-mapping>

 

以上配置添加到<web-app></web-app>里
但是我们有时会用到中文,所以我们要重写FilterDispatcher(过滤器)

在src目录下创建com.filter包,在包中建立NewFilter类,继承FilterDispatcher ,代码如下:

package filter;

import org.apache.struts2.dispatcher.FilterDispatcher;
import java.io.IOException;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class NewFilter extends FilterDispatcher {

 
private static String encoding = "GB2312";

 
public void init(FilterConfig filterConfig) throws ServletException {
  
super.init(filterConfig);
  String encodingParam 
= filterConfig.getInitParameter("encoding");
  
if (encodingParam != null && encodingParam.trim().length() != 0{
   encoding 
= encodingParam;
  }

 }


 
public void doFilter(ServletRequest request, ServletResponse response,
   FilterChain chain) 
throws IOException, ServletException {
  request.setCharacterEncoding(encoding);
  
super.doFilter(request, response, chain);
 }

}


但是这样改写后发现没效果,其实是web.xml里的配置没有调用而已,所以web.xml的配置要改成:

<filter>
  
<filter-name>struts2</filter-name>
  
<filter-class>com.filter.NewFilter</filter-class>
  
<init-param>
    
<param-name>encoding</param-name>
    
<param-value>GB2312</param-value>
  
</init-param>
</filter>
<filter-mapping>
  
<filter-name>struts2</filter-name>
  
<url-pattern>/*</url-pattern>
</filter-mapping>


不难发现,NewFilter.java里的 private static String encoding = "GB2312";
和web.xml里的<param-name>encoding</param-name><param-value>GB2312</param-value>
其实String encodingParam = filterConfig.getInitParameter("encoding");
就是从web.xml中读出参数名为encoding的值,然后赋给子类中的encoding成员

所以,以后需要改变编码方式只需在web.xml中改 <param-value>的值

第三步:配置struts.xml

在src里新建一个struts.xml文件

<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd"
>
<struts>
    
<include file="struts-default.xml"/>
    
<package name="com" extends="struts-default">    
        
<action name="hello" class="com.HelloWorld">
          
<result>Hello.jsp</result>
        
</action>
    
</package>
</struts>


添加到struts.xml里

在src下新建struts.properties添加如下配置:

struts.locale=zh_CN
struts.i18n.encoding=GB2312


这样struts就能识别中文了


第四步:新建JavaBean

在src.com下新建HelloWorld.java,代码如下:

package com;

import com.opensymphony.xwork2.ActionSupport;

public class HelloWorld extends ActionSupport {
 
private static final long serialVersionUID = 1L;
 
 
private String message;

 
public String getMessage() {
  
return message;
 }


 
public void setMessage(String message) {
  
this.message = message;
 }

 
 
public String execute() {
  System.out.println(
"Executing action, your message is " + message);
  
return SUCCESS;
 }

}

 


第五步:新建jsp页面

在WebContent下新建HelloWorld.jsp,代码如下:

<%@ page contentType="text/html; charset=GB2312" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    
<head>
        
<title>HelloWorld</title>
        
<s:head />
    
</head>
    
<body>
        
<s:actionerror />
        
<s:form action="hello">
            
<s:textfield label="Name" name="message" tooltip="Enter your Name here" />
            
<s:submit />
        
</s:form>
    
</body>
</html>


在WebContent下新建Hello.jsp,代码如下:

<%@ page contentType="text/html; charset=GB2312" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    
<head>
        
<title>HelloWorld</title>
        
<s:head />
    
</head>
    
<body>
        
<h1><s:property value="message" /></h1>
    
</body>
</html>


以上工作完成可以把web工程打包,发布到tomcat或其他web服务器
在地址栏输入:http://localhost:8080/你的web工程名称/HelloWorld.jsp

在输入框输入信息点击submit提交,会在Hello.jsp上显示出你刚才输入的信息

总结:

上面的例子简单地演示了,Web 应用程序的基本操作。第一,配置并不复杂;第二,action提交方式的改变,直接在struts.xml里配置,而不再像1.x里使用

request.forwardmapping("");

来提交;第三,struts2的标签库用起来更简单。

分享到:
评论

相关推荐

    struts2.0中文教程

    06 在Struts 2.0中实现表单数据校验(Validation) 07 Struts 2的基石——拦截器(Interceptor) 08 在Struts 2中实现IoC 09 在Struts 2中实现文件上传 10 在Struts 2中实现CRUD 11 Struts 2中的OGNL 12 trus 2的新...

    Struts2.0学习Struts2.0文档

    3. **开放源代码**:作为一个开源项目,Struts 2.0 的源代码对所有人开放,这意味着开发者可以自由地研究其内部实现机制,并根据需要进行定制或扩展。 **缺点:** 1. **需要编写的代码量较大**:虽然Struts 2.0 ...

    Struts 2.0系列(MAX)

    在Struts 2.0中实现表单数据校验(Validation) Struts 2的基石——拦截器(Interceptor) 在Struts 2中实现IoC 在Struts 2中实现文件上传 在Struts 2中实现CRUD Struts 2中的OGNL Strus 2的新表单标志的使用 ...

    Struts2.0视频教程+struts2.0中文教程

    Struts2.0是Java Web开发中的一个强大框架,它基于Model-View-Controller(MVC)设计模式,为开发者提供了构建可维护性高、结构清晰的Web应用程序的工具。这个"Struts2.0视频教程+struts2.0中文教程"包含的资源旨在...

    struts2.0的特点

    在Struts2.0中,核心概念之一是Action,它被设计为一个简单的POJO(Plain Old Java Object),这使得Action的实现更加灵活和简洁。Action类不再需要继承特定的基类,而是通过配置文件(如struts.xml)来定义其行为。...

    struts2.0入门案例

    本入门案例将带你逐步了解如何使用Struts2.0来创建一个简单的Web应用。 一、Struts2.0框架基础 Struts2.0是Struts1的升级版,它在功能和易用性上都有显著提升。框架的核心组件包括Action、Result、Interceptor等,...

    Struts2.0 Jar包

    Struts2.0是一款强大的Java Web框架,它在MVC(Model-View-Controller)设计模式的基础上,提供了灵活且强大的架构来构建企业级的Web应用程序。这个“Struts2.0 Jar包”包含了所有必要的库文件,使得开发者可以便捷...

    Struts 2.0

    Struts 2.0 是一个基于 Model-View-Controller (MVC) 设计模式的Java Web应用程序框架。它并非Struts 1的直接升级,而是源自WebWork框架,提供了更强大的特性和灵活性。Struts 2的核心是Action,它是业务逻辑处理的...

    struts 2.0

    Struts 2.0是Java Web开发中的一个关键框架,它是Apache软件基金会的顶级项目,融合了原本独立的Struts 1.x和WebWork框架的优势,为开发者提供了一个强大、灵活且可扩展的MVC(Model-View-Controller)架构。...

    struts 2.0 详细配置

    Struts 2.0 是一个基于 Java 的开源框架,用于开发 Web 应用程序。它继承了 Struts 1.x 的优点,并在架构上进行了改进,更加灵活且易于扩展。Struts 2.0 采用了 MVC(Model-View-Controller)设计模式,将数据模型、...

    Struts_2.0从入门到精通

    拦截器是Struts2.0框架中一个非常灵活且强大的特性,它可以在Action执行前后进行拦截,执行特定的逻辑,如权限检查、日志记录等。Struts2.0内置了多种拦截器,同时支持自定义拦截器,使得开发者可以根据应用需求定制...

    三大框架中文文档中的struts2.0开发手册(程序员必看)

    Struts2.0是Java Web开发中非常重要的一个MVC框架,它是在原有的Struts1.x基础上进行改进和发展而来的。这个"三大框架中文文档中的struts2.0开发手册"为程序员提供了一份详尽的参考资料,帮助他们理解和掌握Struts...

    Struts2.0学习系列 以及 Struts2.0安装包

    总的来说,"Struts2.0学习系列"会引导你逐步探索以上知识点,结合提供的安装包,你可以搭建起一个简单的Struts2.0示例项目,从而加深对框架的理解和实践。从创建Action到编写配置文件,再到实现视图展示,每一步都至...

    struts2.0环境配置

    本教程将详细讲解如何在Myeclipse集成开发环境中配置Struts2.0,同时结合JDK1.6和Tomcat6.0服务器来创建一个完整的开发环境。 首先,确保你已经安装了JDK1.6。Java Development Kit (JDK) 是开发和运行Java应用程序...

    struts2.0的 jar包和源文件

    Struts2.0 是一个非常流行的Java Web框架,它基于MVC(Model-View-Controller)设计模式,用于构建高效、可维护的企业级应用程序。这个压缩包包含了Struts2.0的核心jar文件以及可能的源代码,使得开发者可以直接查看...

    初识[Struts2.0]并[使用Struts2.0]进行SSH集成

    Struts2.0是Java Web开发中一个非常重要的框架,它是Apache软件基金会的Struts项目的一个版本,专门用于构建基于MVC(Model-View-Controller)设计模式的Web应用程序。Struts2.0的出现极大地简化了Java Web开发,...

    sstruts2.0 struts2.0

    Struts2.0 是一款基于模型-视图-...总结来说,Struts2.0是一个功能强大且灵活的Java Web开发框架,其配置文件和组件协同工作,提供了高效的开发环境。理解并熟练运用Struts2.0,能够提高开发效率,构建健壮的Web应用。

    struts2.0 应用开发,基本功能全部实现

    这个压缩包文件可能是为了展示一个完整的Struts2.0应用实例,包括从搭建环境到实现基本功能的全过程。 在Struts2.0的应用开发中,首先我们需要理解其核心概念: 1. **Action类**:这是业务逻辑的载体,通常继承自`...

    Struts 2.0全攻略之Struts 2.0参考手册

    ActionContext是Struts 2.0中的一个重要概念,它存储了Action执行时的上下文信息,包括请求、响应、session、application等域对象。 13. **S2-005安全漏洞** 虽然Struts 2.0功能强大,但历史上曾出现过如S2-005...

    struts2.0源代码

    Struts2.0是Java Web开发中非常重要的一个框架,它是Apache软件基金会的Jakarta项目下的一个产品。这个框架主要用于构建MVC(Model-View-Controller)架构的应用程序,为开发者提供了一种更加灵活和强大的控制层解决...

Global site tag (gtag.js) - Google Analytics