`
luhai1992
  • 浏览: 58067 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

struts2小结1

    博客分类:
  • java
阅读更多

Struts2小结1

                                                                                                       作者:卢海

一、struts1 struts2的区别

struts2每次访问一个action时都会new一个新的对象出来,不会出现线程同步问题
struts1
每次初始化时会将action new出来,相同请求会调用同一个action,会出现线程同步问题

二、配置相应环境

a)         下载struts2 相应jar

b)         解压此文件,将struts-2.1.8.1-all\struts-2.1.8.1\apps\struts2-blank-2.1.8.1中的文件解压,注意app文件夹下的文件是struts的实例文件。

c)         将解压的文件下的web-Inf/classes下的struts.xml  copyweb项目的src

d)         将类库文件copylib目录下 jar文件在解压的文件夹的lib目录下注意junit.jar

spring-test-2.5.6.jar不需copy lib目录下。

注意将commons-logging.jar  copylib 有的struts版本此实例中没后此jar包需从其他实例中copy

e)         将实例中的web.xml 的有关struts2fitler配置信息拷入

    <filter>

        <filter-name>struts2</filter-name>

        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

    </filter>

 

    <filter-mapping>

        <filter-name>struts2</filter-name>

        <url-pattern>/*</url-pattern>

</filter-mapping>

f)          如果是在开发阶段建议在stuts.xml 中设置开发模式,这样配置文件的改动会及时更新

  <constant name="struts.devMode" value="true" />

g)         添加源码

在相应jar包上右键Property 添加相应路径

核心包的路径 \struts-2.1.8.1-all\struts-2.1.8.1\src\core\src\main\java

h)         添加doc 文档 右键相应jar 添加相应路径

核心包doc 文档路径:/struts-2.1.8.1-all/struts-2.1.8.1/docs/struts2-core/apidocs/

i)           添加struts.xml的提示

window –preferences中搜索catalog 添加  选择 uri 名称写stuts.xml 中的地址

http://struts.apache.org/dtds/struts-2.0.dtd 然后将location 中填入core核心包中的相应DTD文件

j)           更改jsp文件的默认编码

Window –preferences 搜索jsp encoding改为 Chinese

三、hello struts 小程序

<package name="default" namespace="/" extends="struts-default">

        <action name="hello">

            <result>

            /hello.jsp

            </result>

        </action>

</package>

 

解析 namespace 代表访问时的命名空间只有在此命名空间下才能调用其下的action

    <action>中的name属性代表访问路径 result代表返回的页面

 

访问此action
               
http://localhost:8080/项目名/action

四、namespace

namespace 必须用/开头 访问对应的action时要加上相应的namespace名称

namespace为空时在任何路径都可访问,可解决特殊问题

五、result

没有名称时就加代表success

六、自定义action

Struts2 可以将任何一个类的名称为execute 返回值为String 的方法当做action

即一个普通java 便于测试。

若在action中没有写class action会自动执行默认的action类。

Action类的定义方法

1、  随便定义一个java普通类

定义返回值为String 方法名为execute的方法。

2、  定义一个类实现Action接口。

3、  定义一个类继承ActionSupport

实际开发中采用第三种方法因为它为我们提供了一些工具方法,方便调用。

<package name="default" namespace="/" extends="struts-default">

        <action name="hello" class="actions.Test1">

            <result name="success">

            /hello.jsp

            </result>

        </action>

        </package>

 

    类的代码:

package actions;

 

import com.opensymphony.xwork2.ActionSupport;

 

 

 

public class Test1  extends ActionSupport{

 

    @Override

    public String execute() throws Exception {

       // TODO Auto-generated method stub

       System.out.println("hello");

       return "success";

    }

}

 

七、相对路径问题

jsp界面中加入

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

         <head></head>中加入

                   <base href="<%=basePath%>">

    这样所有的链接会自动定位到项目根路径

Stuts2.0中的所有的链接界面对应的路径为映射路径而不是实际路径,所以在struts2.0中应尽量使用绝对路径

八、Action执行的方法

Action执行的时候并不一定要执行execute方法

可以在配置文件中配置Action的时候用method 属性来指定执行哪个方法

也可以在调用时使用同一个action然后加!号后加方法名

<a href="user/user!add">添加用户</a>

一般使用后一种方法避免出现过多的action

九、通配符问题

使用通配符可以最少化代码量

<package name="default1" namespace="/path2" extends="struts-default">

        <action name="*_*" class="actions2.{1}" method="{2}">

        <result name="success">/{1}_{2}.jsp</result>

        </action>

</package>

可以根据统配符的内容自动找到相关类相关方法

注意 通配符的占位符是从1开始的

十、得到参数值

在调用的Action中定义与参数名相同的String类型的参数,添加get set

即可得到相应的参数值。

十一、通过域模型DomainMode得到参数

         即写一个pojo 此类中含有相应的参数值,在传值时采用对象.属性名传参,接受action类只需写pojo类的get set 方法即可。

 

十二、ModelDriven接受参数

         在传参时写字段名称=值,在接收的Action类实现ModelDriven接口实现其getModel方法,返回值为接受的pojo对象,即可得到封装好的pojo对象。

例:

         传参:?name=aa&age=12"

         接受类:implements ModelDriven<pojo.Student>

         实现方法:     public pojo.Student getModel() {

                                               return stu;

                                              }

         返回值为new 好的stu对象

         pojo.Student stu=new pojo.Student();

 

十三、中文乱码问题

stucts的配置文件中加入:

<constant name="struts.i18n.encoding" value="GBK" />

国际化配置

有些版本设置后还会出现乱码问题,应自己手写一个filter来解决

2.1.7版本后会解决

或将web.xmlStuts配置换成2.0 配置

<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>

十四 简单数据校验

1、              this.addFieldError("name", "name is error");

                                     action中放入错误信息

2、              在前台得到错误信息

a)         添加struts标签

<%@taglib uri="/struts-tags" prefix="s" %>

b)         显示带样式的错误信息

 

分享到:
评论
14 楼 JesseyHu 2010-04-03  
期待楼主小结X出现。
13 楼 rubys 2010-04-03  
它的 convention + rest 会更舒服的,呵呵
12 楼 xbcoil 2010-04-03  
Struts 通配符挺好.的...
11 楼 changeItMore 2010-04-02  
继续加油吧,距离还很远
10 楼 jwx0925 2010-04-02  
楼主写的不错!我也在学习基础,感觉很实用~
9 楼 edgar615 2010-04-02  
都忘记struts有些什么配置了
每次都是复制粘贴
8 楼 Diego玄霄 2010-04-02  
struts2 中标签还是有BUG,  队友input中的值如果有空格间隔的话,取不到第一个空格之后的值!
7 楼 meiowei 2010-04-02  
为什么很多人都会把struts写成structs或者strutcs呢?无解
6 楼 rsmh 2010-04-02  
这几天都在看马士兵的struts2视频教程,貌似楼主的帖子是从中总结出来的。对于我经常的复习巩固很有帮助,谢谢咯
5 楼 ivyshark 2010-04-02  
能不能行?
我就问能不能 我就问能不能????
4 楼 pochonlee 2010-04-02  
木有什么现实意义!
3 楼 adairfly 2010-04-02  
还不错啊 关于Struts2的部分小结
2 楼 greatwqs 2010-04-02  
很乱,什么都在说..
1 楼 passtheball 2010-04-02  
楼主,标题写错了

相关推荐

    Struts2学习小结

    ### Struts2学习小结 #### 一、Struts2简介及环境搭建 **Struts2** 是一款基于 **MVC**(Model-View-Controller)设计模式的开源框架,用于简化 Java Web 应用程序的开发过程。通过将业务逻辑、用户界面以及控制...

    struts开发小结

    这篇博客"Struts开发小结"可能涵盖了作者在使用Struts框架进行开发过程中的经验总结和一些关键点。由于没有直接的描述内容,我们将基于Struts框架的一般特性来讨论相关知识点。 1. **Struts 2框架基础**: Struts ...

    Struts2输入校验总结

    ### Struts2输入校验深度解析 #### 一、手动输入完成校验 在Struts2框架中,输入校验是确保数据完整性和安全性的重要环节。对于手动输入完成校验,Struts2提供了灵活的机制。 1. **普通处理方式**:在Action类中...

    Struts2+Hibernate+Spring项目小结――Struts2部分总结

    在Struts2中,当服务端验证失败时,通常会将错误信息保存在ActionContext中,并通过ActionSupport类中的addFieldError方法添加到字段上。此时,为了保留页面的初始状态,我们可以采取以下策略: 1. 使用`...

    Struts 2实战 Struts 2 in action 的中文版

    ### 小结 《Struts 2实战 Struts 2 in action 的中文版》这本书系统地介绍了Struts 2框架的基础知识、核心组件、工作原理以及实际开发技巧。对于希望深入学习和掌握Struts 2框架的开发者来说,这本书是一本不可多得...

    Struts2 in action中文版

    第1章 Struts 2:现代Web框架 2 1.1 Web应用程序:快速学习 2 1.1.1 构建Web应用程序 2 1.1.2 基础技术简介 3 1.1.3 深入研究 6 1.2 Web应用程序框架 7 1.2.1 什么是框架 7 1.2.2 为什么使用框架 8 1.3 Struts 2框架...

    Struts2权威指南

    第1章 Struts 2概述1  1.1 MVC思想概述2  1.1.1 Web技术的发展2  1.1.2 Model 1和Model 24  1.1.3 MVC思想及其优势6  1.1.4 常用的MVC框架7  1.2 Struts 2的起源和背景8 ... 1.6 本章小结22

    Struts框架中struts-config.xml文件配置小结

    ### Struts框架中struts-config.xml文件配置详解 #### 一、引言 在Java Web开发领域,Struts是一个非常重要的MVC(Model-View-Controller)框架,它极大地简化了Web应用程序的开发过程。而在Struts框架中,`struts...

    struts2总结

    关于struts2框架的学习总结,非常实用知识对关键部分通过自己的学习总结出来非常具有实际参考价值

    flex与struts2整合

    #### 四、小结 Flex与Struts2的整合,不仅能够提升Web应用的用户体验,还能充分利用两种技术的优势,实现高效的数据处理和丰富的界面展示。通过本文的详细介绍,相信读者已经掌握了Flex与Struts2整合的基本步骤和...

    Struts2知识点小结-非常实用

    Struts2是一个强大的MVC框架,它为Java开发者提供了便捷的Web应用开发工具。本文将对Struts2的核心概念和标签库进行详细讲解,帮助初学者更好地理解和掌握这个框架。 Struts2框架由两个主要部分构成:控制器和视图...

    关于struts实验时的临时总结

    ##### 总结1:Struts2 onsubmit 无法返回JavaScript进行验证 **问题描述**:在Struts2框架中,尝试使用`onsubmit`事件调用JavaScript进行表单验证时发现无效。 **原因分析**:`onsubmit`事件默认情况下并不会阻止...

    Struts2入门教程(全新完整版)

    一、准备工作及实例 3 ...小结Action 14 9.使用通配符 14 10.使用0配置:ZERO Annotation 15 11.Result配置详解 15 探讨type类型: 16 Type类型值 16 作用说明 16 对应类 16 chain 16 用来处理Action链 16 ...

    深入浅出Struts2(附源码)

    本书是广受赞誉的Struts 2优秀教程,它全面而深入地阐述了Struts 2的各个特性,并指导开发人员如何根据遇到的问题对症下药,选择使用最合适的特性。作者处处从实战出发,在丰富的示例中直观地探讨了许多实用的技术,...

    Struts2学习心得

    ### 小结 通过对Struts2框架的国际化功能的介绍和示例分析,我们可以看出Struts2在处理多语言应用方面具有非常强大的能力。通过合理的配置资源文件和使用Struts2提供的标签,开发者可以轻松地为用户提供多语言支持...

    关于struts的部分小结

    以上是对Struts框架的简单总结,每个知识点都涉及到Struts2的核心特性,理解和掌握这些知识点对于进行Struts2应用的开发至关重要。在实际项目中,还需要结合其他技术如Spring、Hibernate等进行更复杂的集成和配置。

    struts2基本知识

    #### 五、小结 本文详细介绍了Struts2处理多个请求和域传参的相关知识点。从过滤器和拦截器的作用到动态方法调用的实现,再到具体的登录和注册请求处理示例,旨在帮助读者全面了解Struts2的基本概念和使用方法。...

    struts2+ireport学习小结(一)

    在本学习小结中,我们将探讨如何将Struts2与IReport整合,以实现在Web应用中动态生成和展示报表的功能。 首先,让我们了解Struts2的基础知识。Struts2的核心是Action类,它是处理用户请求并返回结果的核心组件。...

    Struts2 json插件入门指南.pdf

    小结 本文介绍了如何使用Struts2的JSON插件处理JSON数据。通过不同的配置选项和示例,读者可以了解到如何灵活地控制返回的JSON数据格式。无论是使用XML配置还是注解方式,Struts2都提供了丰富的选项来满足不同的...

    struts资料\前半阶段小结

    在"struts资料\前半阶段小结"这个主题中,我们可以理解为是对学习或使用Struts框架初期阶段的一个总结。以下是对Struts框架核心知识点的详细解释: 1. **MVC模式**:MVC是一种设计模式,用于分离应用程序的数据、...

Global site tag (gtag.js) - Google Analytics