strutshibernatespring内容摘要:
tch (UserNotFoundException e) { ()。 } catch (PasswordErrorException e) { ()。 } return (error)。 通过添加业务逻辑处理类,我们将验证逻辑转移到了业务逻辑处理层 手把手教程 版权所有:尚学堂科技 Struts+Hibernate+Spring 尚学堂 页面之间数据的传递 如何将数据从 Action中传递到下一个 JSP页面。 一般使用 : 在 Action中,使用 (String name,Object data)方法往 request中设置参数 在 JSP中,使用 (String name)来获取相应的参数 在原来 LoginAction的基础上编写相应的代码,测试页面数据传递 传递登录成功者的帐号信息到成功页面,并显示 手把手教程 版权所有:尚学堂科技 Struts+Hibernate+Spring 尚学堂 进一步理解 Struts控制流 手把手教程 版权所有:尚学堂科技 Struts+Hibernate+Spring 尚学堂 细节:所有的页面请求由容器接收 Struts的核心组件是 ActionServlet,像其它所有 Servlet一样,它是生存在容器中的,比如 Tomcat、 WebLogic等,当容器启动的时候,它会读取(部署描述符),告诉容器它会装入哪些 Servlet 一个标准的 Servlet是通过 servletmapping来设定,哪些请求,将会被提交到哪些 servlet中 Struts的 servletmapping配置一般是: servletmapping servletnameaction/servletname urlpattern*.do/urlpattern /servletmapping 这样配置的意思是:任何以 .do结尾的 URL请求,都会被发送到ActionServlet进行处理 手把手教程 版权所有:尚学堂科技 Struts+Hibernate+Spring 尚学堂 小结 MVC基本结构 Struts的主要组成部分 如何编写 ActionForm 如何编写 Action 如何在配置文件中定义映射 URL、 Action以及 ActionForm 如何获取从页面传递到 Action的数据 如何将数据从 Action传递到下一个页面 如何将业务逻辑与表示层分离 需牢记原则:不要在 Action中进行业务逻辑的处理,业务逻辑应交给专门的 Model层去做 在业务逻辑层抛出异常,并在 Action中捕捉和处理 手把手教程 版权所有:尚学堂科技 Struts+Hibernate+Spring 尚学堂 Struts Taglib 易于使用,能代替直接在页面上写 JAVA脚本 便于重用 用 Struts Taglib实现成功页面 在以后的开发中,将逐步介绍一些常用的 Taglib 手把手教程 版权所有:尚学堂科技 Struts+Hibernate+Spring 尚学堂 尝试简单的 tag lib使用 在 JSP文件的头部添加如下声明: %@ taglib prefix=bean uri= % %@ taglib prefix=logic uri= % %@ taglib prefix=html uri= % 关于 struts tag lib的说明,可以查看相关的参考文档 常用的 struts tag lib bean:write logic:empty和 logic:notEmpty logic:present和 logic:notPresent logic:iterator 手把手教程 版权所有:尚学堂科技 Struts+Hibernate+Spring 尚学堂 JSTL 简介: SUN的标准 Taglib库 JSP标准标签库( JSP Standard Tag Library, JSTL ) 迭代和条件判断 数据管理格式化 XML 操作 数据库访问 函数标签库 表达式语言( EL) EL隐式对象 存取器 运算符 手把手教程 版权所有:尚学堂科技 Struts+Hibernate+Spring 尚学堂 在项目中使用 JSTL 拷贝 WEBINF/lib目录下 在 JSP中添加伪指令 %@ taglib prefix=c uri= %@ taglib prefix=fmt uri= 常用 JSTL标记 c:out c:if c:choose、 c:when和 c:otherwise c:forEach fmt:formatNumber fmt:formatDate 手把手教程 版权所有:尚学堂科技 Struts+Hibernate+Spring 尚学堂 进一步理解 ActionForm ActionForm的要求 必须扩展自 如果要获取表单的值,必须定义一个 public属性 如果要求在将 ActionForm传递到 Action之前进行校验,必须实现validate方法 如果想要在组装前初始化属性,必须实现 reset方法 DynaActionForm 举例说明 DynaActionForm的配置 DynaActionForm的使用 手把手教程 版权所有:尚学堂科技 Struts+Hibernate+Spring 尚学堂 ActionForm作为表单字段收集器 通过 HTTP提交表单数据 通过 HTTP上传文件 通过例子演示文件上传的简易方法 通过 HTTP提交空字段 修改原来的 JSP文件,提交空字段 手把手教程 版权所有:尚学堂科技 Struts+Hibernate+Spring 尚学堂 ActionForm作为类型转换器 所有从表单提交到后台的数据均为字符串类型 如何利用 ActionForm自动转换 int数据类型 举例说明 如何利用 ActionForm自动转换 boolean数据类型 举例说明 如何利用 ActionForm自动转换 Date类型 定义 Converter 注册 Converter 举例说明 如何利用 ActionForm自动转换 Double类型 举例说明 手把手教程 版权所有:尚学堂科技 Struts+Hibernate+Spring 尚学堂 ActionForm作为传输对象 ActionForm 可以被其它 bean或者过程作为数据载体。 Transfer 对象 (也称为值对象( value object) )用来通过发送粗糙 —规整的数据视图来交换精细规整的数据。 ActionForm 的各个属性都必须是可变的。 提示: 使用粗糙 —规整 ActionForm来减小类维护。 应用中的表单一般共享属性 创建一个基本的 ActionForm,具有表单需要的所有属性 手把手教程 版权所有:尚学堂科技 Struts+Hibernate+Spring 尚学堂 ActionForward ActionForward能做什么。 在 Action中,经常问的问题是:“ OK,操作成功了,然后呢。 ” ActionForward会回传给 ActionServlet ActionForward中的路径,可以是一个带参数的 URI ActionForward的属性 name path redirect className 转发 (forward)与重定向 (redirect) 全局 ActionForward与局部 ActionForward 手把手教程 版权所有:尚学堂科技 Struts+Hibernate+Spring 尚学堂 动态创建 ActionForward 将 ActionForward定义在一个 Struts 配置文件中是个好的选择 但也可以在 Action中动态创建 ActionForward,而不需要在配置文件中指定 如下所示: ActionForward forward = new ActionForward(/do/itemEdit?action=edit)。 举例说明 手把手教程 版权所有:尚学堂科技 Struts+Hibernate+Spring 尚学堂 ActionMapping 理解 ActionMapping path forward type name scope validate input parameter unknow ActionMapping 手把手教程 版权所有:尚学堂科技 Struts+Hibernate+Spring 尚学堂 Scope属性 在 Action映射配置中, Scope属性可以取值为: request或 session Scope属性表示: Struts框架在将 ActionForm对象(与目标 Action匹配的ActionForm)传送到 Action之前,会将 ActionForm对象保存的位置 如: scope=―request‖配置,将指示 struts调用(―ActionForm名称 ” ,ActionForm对象 )方法,将ActionForm对象保存到 request。 其中, ActionForm名称 与 ActionForm名称一致,如: formbean name=―uploadForm‖ type=―‖/,其中uploadForm就是其名称。 我们明白 scope属性的意义之后,就可以利用 struts的这些特性,来解决开发过程中的某些常见问题 手把手教程 版权所有:尚学堂科技 Struts+Hibernate+Spring 尚学堂 常见问题:如何在程序出现异常的时候返回录入界面重新录入 假设现在要在一个页面上输入用户的信息(可能会有十几个属性值需要输入),用户不小心输入了一个重复的帐号,而帐号是不允许重复的,这个时候,系统应该提示用户有关帐号重复的信息,同时让用户重新选择一个帐号。 这种情况下,我们需要返回用户录入界面,让用户修改帐号字段。 现在的问题是:如何在返回这个录入界面的时候,将用户输入的其它信息保持住。 手把手教程 版权所有:尚学堂科技 Struts+Hibernate+Spring 尚学堂 搞定 Action对象 如果应用需要保存一个记录到数据库中,典型的过程可能是 ActionForward提供一个链接到输入页面 ActionForm捕获输入 ActionMapping配置 Action Action将输入送到数据库中(通常会将这一步操作委托给业务逻辑类去实现) J2EE是一个多线程的环境,服务器针对每个请求启动一个线程来处理。 所以有可能会有多个线程同时访问一个 Servlet实例的情况 在 Struts里面也是一样的,有可能会有多个线程同时访问一个 Action实例的情况 所以必须保证 Action类中的方法具有“可重入性”,即不能在 Action的方法里改变实例变量的值 手把手教程 版权所有:尚学堂科技 Struts+Hibernate+Spring 尚学堂 Action的主要职责 校验输入数据 调用业务逻辑方法 检测处理异常 根据逻辑进行转向操作 手把手教程 版权所有:尚学堂科技 Struts+Hibernate+Spring 尚学堂 I18N问题 什么是 I18N问题。 在英文中, 国际化( Internationalization)被缩写为 I18N, 即只取首尾两个字母, 中间字母为 18个 问题在哪里。 页面字符串硬编码 异常消息的硬编码 提示信息的硬编码 手把手教程 版权所有:尚学堂科技 Struts+Hibernate+Spring 尚学堂 Java如何支持 I18N。 一个简单的例子 不支持 I18N的例子 – 支持 I18N的例子 我们需要将硬编码文本转移到外部的。strutshibernatespring
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。