Struts2开发经验与常见错误详解

4星 · 超过85%的资源 需积分: 0 2 下载量 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的应用程序。