Struts2开发经验与常见错误详解
4星 · 超过85%的资源 需积分: 0 87 浏览量
更新于2024-08-02
收藏 136KB DOC 举报
"struts2开发经典总结,错误汇总"
在Struts2框架的开发中,开发者经常遇到一些常见问题和挑战。以下是对Struts2框架的一些核心知识点的详细阐述,这些知识点对于初学者和有经验的开发者都非常有用。
1. OGNL(Object-Graph Navigation Language)表达式
OGNL是Struts2中用于访问和操作对象属性的强大表达式语言。在JSP页面中使用OGNL时,确保`<%@page isELIgnored="false"%>`已被声明,以便启用OGNL表达式。例如,你可以通过`${requestScope.count}`来获取Session中的变量值。
2. Action和结果映射
在Struts2中,Action类是业务逻辑的核心,每个Action对应一个特定的职责。例如,创建一个名为`NewsSortListAction`的Action类,其中包含一个名为`sort5list`的方法。在`struts.xml`配置文件中,我们需要定义这个Action,指定其名称、实现类以及方法,并设置成功和错误的结果页面。如下所示:
```xml
<action name="sort5" class="com.txxw.cms.news.action.NewsSortListAction" method="sort5list">
<result name="success">/sort1.jsp</result>
<result name="error">/error.jsp</result>
</action>
```
这样,当用户请求`sort5.action`时,Struts2会执行`sort5list`方法,然后根据方法的返回结果重定向到相应的JSP页面。
3. 展示Action数据
在JSP页面中,我们可以直接遍历Action返回的结果集。例如,如果`sort5list`方法返回一个集合,我们可以在`sort1.jsp`中使用`s:iterator`标签进行迭代,如下:
```jsp
<s:iterator value="sort5list" id="ctype" status="status">
<a href="sortnlist.action?ct_id=<s:property value="ct_id"/>" ...>
<s:property value="ct_name"/>
</a>
</s:iterator>
```
同样的,我们可以在其他页面如`index.jsp`中调用这个Action,但这次直接执行并显示结果,而不必再次跳转:
```jsp
<s:action name="sort5" executeResult="true">
<s:iterator value="sort5list" id="ctype"></s:iterator>
</s:action>
```
4. 超链接传递参数
在Struts2中,可以通过多种方式传递参数。一种常见的方式是在超链接的URL中添加参数,例如:
```jsp
<a href="newdetail2.action?nid=<s:property value="nid"/>" ...
```
这样,当用户点击链接时,`newdetail2.action`会被调用,且参数`nid`将被设置为当前对象的`nid`属性值。
5. 依赖库
Struts2的开发通常需要一些基础的依赖库,如:
- `commons-logging-1.0.4.jar`:日志处理库
- `commons-fileupload-1.2.1.jar`:文件上传支持
- `freemarker-2.3.13.jar`:Freemarker模板引擎,用于视图渲染
- `ognl-2.6.11.jar`:OGNL表达式语言库
- `struts2-core-2.1.6.jar`:Struts2核心库
- `xwork-2.1.2.jar`:XWork框架,Struts2的基础
以上只是Struts2开发中的一部分关键知识点,实际开发中还会涉及拦截器、结果类型、异常处理、国际化、Ajax集成等方面。掌握这些核心概念和技术,能够帮助开发者更高效地构建基于Struts2的应用程序。
2014-09-03 上传
2008-05-27 上传
2023-09-03 上传
2023-08-01 上传
2023-05-22 上传
2024-01-02 上传
2023-05-30 上传
2023-06-21 上传
2023-05-19 上传
liushuaileon
- 粉丝: 6
- 资源: 46
最新资源
- 明日知道社区问答系统设计与实现-SSM框架java源码分享
- Unity3D粒子特效包:闪电效果体验报告
- Windows64位Python3.7安装Twisted库指南
- HTMLJS应用程序:多词典阿拉伯语词根检索
- 光纤通信课后习题答案解析及文件资源
- swdogen: 自动扫描源码生成 Swagger 文档的工具
- GD32F10系列芯片Keil IDE下载算法配置指南
- C++实现Emscripten版本的3D俄罗斯方块游戏
- 期末复习必备:全面数据结构课件资料
- WordPress媒体占位符插件:优化开发中的图像占位体验
- 完整扑克牌资源集-55张图片压缩包下载
- 开发轻量级时事通讯活动管理RESTful应用程序
- 长城特固618对讲机写频软件使用指南
- Memry粤语学习工具:开源应用助力记忆提升
- JMC 8.0.0版本发布,支持JDK 1.8及64位系统
- Python看图猜成语游戏源码发布