`
laoer
  • 浏览: 52219 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Struts2小结

阅读更多
天乙社区8.0(http://www.laoer.com)已经完全用Struts2实现,在使用Struts的过程中也遇到了一些问题,现在总结一下。

1、在web.xml中EncodingFilter的位置应该在Struts2的FilterDispatcher之前,道理很简单,要先调整字符集,再进入Action。

2、如果使用Urlrewrite,要指定filter-mapping的dispatcher方式,如下
<filter-mapping>
    <filter-name>Struts2</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
</filter-mapping>

3、在做上传文件的时候,要在web.xml中增加ActionContextCleanUp这个filter,如果不增加,会发生第一次上传取不到文件的情况
<filter>
  <filter-name>struts-cleanup</filter-name>
  <filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>struts-cleanup</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
按照Struts2的API,filter的顺序是
struts-cleanup filter
SiteMesh filter
FilterDispatcher

4、在Apache+Resin的情况下,要在WEB-INF下增加resin-web.xml,该文件只针对Resin有效,作用是指定后缀与Resin的Servlet引擎匹配,要不然从Apache转发过去的请求到Resin后会出现404的情况,resin-web.xml举例如下:
<web-app xmlns="http://caucho.com/ns/resin">
<servlet-mapping url-pattern='*.bbscs' servlet-name='plugin_match'/>        
</web-app>

5、在使用<s:url/>标签的时候,会出现将get或post数值带入url参数的情况,如果不需要这些参数,可以在struts.properties文件中设置
struts.url.includeParams=none
或是在<s:url/>标记中将includeParams属性设为none
另外还有两个值
all,是把get和post中的参数加入到url参数中
get,是只把get中的参数加入到url参数中

6、与webwork基本相同,Struts2提供了几种ui.theme,有xhtml、css_xhtml、simple等等,在struts.properties中可以设置使用何种theme,这一点很关键,不同的theme,struts的tag会生成不同的html代码,而且在某些情况下这些theme不能满足页面要求,则需要自己进行扩展了,这些theme都是由freemarker写的,仿照这写就可以。

7、单个checkbox的标记库好像只能返回boolean的值,如果在数据库中设计为int型,则需要做一些转换,这一点我觉得不如Struts1.x的方便。

8、总体来说Struts2的标记库使用上比Struts1.x的方便,页面整体也比较简洁,Struts2采用stack的方式存取数据,与Struts1相比各有千秋吧。

Struts2主要延续自webwork,以前使用webwork的朋友转过来并不困难,Struts2的几个核心的部分,比如拦截器、Result Configuration、OGNL stack等等还是需要仔细的体会,深入了解,才能做出优秀的系统。
分享到:
评论
21 楼 laoer 2007-04-24  
www_gaya_cn 写道
laoer,老二,站长怎么起这个别扭的名字,哈哈

你的系统怎么改签名啊


我已经修改,可以修改签名了。
20 楼 文鸯 2007-04-24  
laoer 写道

7、单个checkbox的标记库好像只能返回boolean的值,如果在数据库中设计为int型,则需要做一些转换,这一点我觉得不如Struts1.x的方便。



默认的是boolean,可以改的。
设置该标签的fieldValue属性可以指定选中时要提交的值,通过Struts2自带的CheckboxInterceptor可以指定没有选中时提交的值。
PS:以前学习过楼主的天乙社区源码,虽只看了部分,但也受益非浅,非常感谢!
19 楼 www_gaya_cn 2007-04-24  
laoer,老二,站长怎么起这个别扭的名字,哈哈

你的系统怎么改签名啊
18 楼 宏基小键盘 2007-04-23  
yb31 写道
遇到一个比较怪的问题.
在jsp中使用jstl及el好像不稳定.
如:${a.b}
同样的页面,有时候会显示,有时候为空字符串

各位有没有遇到.很晕.-_-!!


遇到过,不知道是BUG,还是...
还是用struts2的标签或freemarker吧,JSTL的判断语法不太好用。
17 楼 mercyblitz 2007-04-20  
学习中!
16 楼 aninfeel 2007-04-13  
为什么不直接用spring mvc?
15 楼 01071405 2007-04-13  
新东西出来了,想了解了解
14 楼 freej 2007-04-13  
顶~,正在自习Struts2.
13 楼 jamesby 2007-04-13  
laoer 写道
jamesby 写道
楼主能不能贴段JSP的代码,我想知道你的view层是怎么做的,如果你自己设计了一些FreeMarker模板

能将模板代码,相关配置以及目录位置告知最好.
多谢.


例如:我jsp文件中有
<s:actionerror theme="bbscs0"/>
bbscs0是我自定义的,在src下建立/template/bbscs0目录(编译后就在classes下),在下面建立actionerror.ftl,内如如下:
<#if (actionErrors?exists && actionErrors?size > 0)>
<div class="errormsg">
<#list actionErrors as error>
<span class="errorMessage">${error}</span><br/>
</#list>
</div>
</#if>

errormsg是我自定义的样式,errorMessage是Struts2原来就有的,我没去掉,但我的css里没有定义这个样式,这样错误信息就显示我自己定义的样式了。

我做了一些简单的theme,在我社区的代码里有。
多谢,这样我可以绝大多数为默认的theme,如果某个觉得不合适就定义我自己的theme,通过在控件中指定theme属性方式。

我需要的就是这个,多谢。
12 楼 laoer 2007-04-13  
jamesby 写道
楼主能不能贴段JSP的代码,我想知道你的view层是怎么做的,如果你自己设计了一些FreeMarker模板

能将模板代码,相关配置以及目录位置告知最好.
多谢.


例如:我jsp文件中有
<s:actionerror theme="bbscs0"/>
bbscs0是我自定义的,在src下建立/template/bbscs0目录(编译后就在classes下),在下面建立actionerror.ftl,内如如下:
<#if (actionErrors?exists && actionErrors?size > 0)>
<div class="errormsg">
<#list actionErrors as error>
<span class="errorMessage">${error}</span><br/>
</#list>
</div>
</#if>

errormsg是我自定义的样式,errorMessage是Struts2原来就有的,我没去掉,但我的css里没有定义这个样式,这样错误信息就显示我自己定义的样式了。

我做了一些简单的theme,在我社区的代码里有。
11 楼 laoer 2007-04-13  
struts2有j4的包。
10 楼 bleachkinsin 2007-04-13  
Struts2的配置环境是什么?我看了一下官方网站,说Struts2的jdk必须是1.5的,那我的项目用的是1.4的怎么转换呢?
9 楼 laoer 2007-04-13  
realghost819 写道
第5条有点问题把,<s:url/>不会把stack里的数值带入url参数,includeparam有3种情况,none,get,all.
all,是把get和post中的参数加入到url参数中
get,是只把get中的参数加入到url参数中
none,都不加


谢谢指正!
8 楼 ricsson 2007-04-12  
很想学习一下struts2,哪位能够共享一个truts2+spring+hibernate的例子? 谢谢 !!!
7 楼 yb31 2007-04-12  
yb31 写道
遇到一个比较怪的问题.
在jsp中使用jstl及el好像不稳定.
如:${a.b}
同样的页面,有时候会显示,有时候为空字符串

各位有没有遇到.很晕.-_-!!


没人遇到吗???很晕
6 楼 realghost819 2007-04-12  
第5条有点问题把,<s:url/>不会把stack里的数值带入url参数,includeparam有3种情况,none,get,all.
all,是把get和post中的参数加入到url参数中
get,是只把get中的参数加入到url参数中
none,都不加
5 楼 jamesby 2007-04-12  
楼主能不能贴段JSP的代码,我想知道你的view层是怎么做的,如果你自己设计了一些FreeMarker模板

能将模板代码,相关配置以及目录位置告知最好.
多谢.
4 楼 yb31 2007-04-12  
遇到一个比较怪的问题.
在jsp中使用jstl及el好像不稳定.
如:${a.b}
同样的页面,有时候会显示,有时候为空字符串

各位有没有遇到.很晕.-_-!!
3 楼 蓝色之心 2007-04-12  
最近刚作完 struts2+spring+hibernate 的DEMO,感觉struts2很好用。顶一下!
2 楼 蓝色之心 2007-04-12  
最近刚作完 struts2+spring+hibernate 的DEMO,感觉struts2很好用。顶一下!

相关推荐

    Struts2学习小结

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

    struts2总结

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

    struts开发小结

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

    Struts2输入校验总结

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

    Struts2知识点小结-非常实用

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

    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中文版

    第一部分 Strut 2:一个全新的框架 第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 ...15.7 小结 332

    关于struts实验时的临时总结

    ### 关于Struts2实验时的临时总结 #### 概述 本文档是对Struts2实验过程中的几个关键问题及解决方案进行了归纳与整理。通过实际操作过程中遇到的问题及其解决办法,帮助其他开发者避免同样的错误,并提供高效的学习...

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

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

    flex与struts2整合

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

    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

    深入浅出Struts2(附源码)

    1.4 小结 13 第2章初识Struts 14 2.1 Struts的优点 14 2.2 Struts的动作处理流程 15 2.3 拦截器 17 2.4 Struts配置文件 18 2.4.1 struts.xml文件 19 2.4.2 struts.properties文件 26 2.5 Struts应用程序示例...

    Struts2学习心得

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

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

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

    关于struts的部分小结

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

    struts2+ireport学习小结(一)

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

    struts2基本知识

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

    Struts2 json插件入门指南.pdf

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

Global site tag (gtag.js) - Google Analytics