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的例子  我们需要将硬编码文本转移到外部的。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。