SSH培训教程.ppt

上传人:赵** 文档编号:63681699 上传时间:2022-11-25 格式:PPT 页数:188 大小:1.34MB
返回 下载 相关 举报
SSH培训教程.ppt_第1页
第1页 / 共188页
SSH培训教程.ppt_第2页
第2页 / 共188页
点击查看更多>>
资源描述

《SSH培训教程.ppt》由会员分享,可在线阅读,更多相关《SSH培训教程.ppt(188页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、十一月十一月 22 22Struts+Hibernate+SpringStruts+Hibernate+Spring新员工培训THUNISOFTStruts+Hibernate+Spring新员工培训课程总体目标我们的目标是:能够熟练运用当前流行的java开源框架:Struts、Hibernate以及Spring来构建灵活、易于扩展的多层Web应用程序。THUNISOFTStruts+Hibernate+Spring新员工培训多层架构概述C/S:以数据库为中心B/S:多层架构才是真正的目的B/S多层架构将显示、业务运算、数据库等功能完全分离,杜绝彼此的耦合与影响,从而实现松耦合和良好的可维护性

2、。呈现层(UI Layer/Presentation Layer)struts业务逻辑层(Business Layer)spring持久化层(Persistence Layer)hibernate十一月十一月 22 22Struts开源MVC框架THUNISOFTStruts+Hibernate+Spring新员工培训Struts课程目标深入理解MVC模式掌握Struts体系架构掌握Struts开发流程熟练掌握Struts的配置方法THUNISOFTStruts+Hibernate+Spring新员工培训回顾Servlet在web.xml中如何配置?Servlet如何和页面对应起来?我们自己写

3、的Servlet需要从哪个类继承?THUNISOFTStruts+Hibernate+Spring新员工培训Struts是什么?Struts的目标是提供一个开发Web应用的开源框架。Struts鼓励基于M2模式(即MVC设计模式)来开发程序。注意:Struts只是MVC的一种实现方式,不使用Struts也可以使用/实现MVC。因为MVC是一种模式,而Struts则是一种实现。-Model-View-ControllerTHUNISOFTStruts+Hibernate+Spring新员工培训Model1与Model2设计模式简介以JSP为中心的开发模型,称为Model1(JSP+JAVABEA

4、N)业务逻辑与表示逻辑混和,不利维护与重用HTML中嵌入了大量的JAVA代码验证、流程控制、更新程序的状态全部在JSP中完成基于MVC模式的框架MVC将问题进行分解模型包含应用程序的核心功能。模型封装了应用程序的状态。它对视图或控制器一无所知。视图提供模型的表示。它是应用程序的 外观。视图可以访问模型的读方法,但不能访问写方法。此外,它对控制器一无所知。控制器对用户的输入作出反应。它创建并设置模型。THUNISOFTStruts+Hibernate+Spring新员工培训Model2THUNISOFTStruts+Hibernate+Spring新员工培训Struts框架概览THUNISOFT

5、Struts+Hibernate+Spring新员工培训Struts框架概览浏览器web容器将对来自HTTP的每个请求创建一个request对象,并用一个response对象作出响应控制器控制器接收来自浏览器的请求,在struts中,是由一个servlet来充当控制器的角色,struts-config.xml文件配置控制器模型在struts中,由Action类充当业务逻辑的包装器,ActionForm是程序的状态视图JSP文件THUNISOFTStruts+Hibernate+Spring新员工培训Struts框架组件ActionServlet类控制导航流ActionServlet根据URI来

6、决定哪个Action类被用于处理请求,Action可以校验输入,并访问业务层以便从数据库检索信息Action需要知道页面提交了哪些内容,所以由ActionServlet根据请求URI来决定将请求参数绑定到哪个ActionForm中,并传入ActionAction在完成业务逻辑后,返回一个ActionForward对象,ActionServlet根据ActionForward对象中的路径来调用页面完成响应Struts将这些信息绑定在一个ActionMapping对象中,一个ActionMapping对应一个请求URI,当请求路径到达的时候,ActionServlet就会查询ActionMappi

7、ng对象,ActionMapping对象将告诉ActionServlet哪个Action类会被调用、哪个ActionForm类被用于传递页面数据以及哪些ActionForward将被用于转向有关Action、ActionForm、ActionForward等信息,Struts通过一个配置文件:struts-config.xml文件来定义。THUNISOFTStruts+Hibernate+Spring新员工培训Struts1.X 和Struts2.XStruts1.X 与Struts2.X 的差异较大Struts1.X 应用更加广泛Struts2.X 实际上是另外一个框架Webwork发展而来

8、的后续课程将会有对webwork/Struts2.X的介绍以及实例操作THUNISOFTStruts+Hibernate+Spring新员工培训快速开始一个Struts项目第一个项目,实现用户登录操作用户将看到一个登录页面,要求用户输入用户名以及密码如果用户名以及密码都是admin,提示登录成功否则提示登录失败1、用Eclipse创建一个J2EE Web应用项目,如右图所示2、下载并解压Struts项目*从Apache网站下载struts最新版*将压缩包解压到一个目录,此目录为STRUTS_HOME目录3、将STRUTS_HOME/lib目录下的所有.jar文件拷贝到刚创建的web项目的Web

9、Content/WEB-INF/lib目录下4、配置ActionServlet:修改web项目的web.xml文件,添加如下Servlet映射配置(转下一页)THUNISOFTStruts+Hibernate+Spring新员工培训web.xml 的配置 action org.apache.struts.action.ActionServlet config /WEB-INF/struts-config.xml 2 action *.do THUNISOFTStruts+Hibernate+Spring新员工培训我们将需要创建如下文件一个ActionForm LoginActionForm.j

10、ava一个Action LoginAction.javastruts-config.xml文件三个页面登录页面 login.jsp登录成功提示页面 login_success.jsp登录失败提示页面 login_error.jsp就这些!没别的了!THUNISOFTStruts+Hibernate+Spring新员工培训创建LoginActionForm.javaActionForm是一个JavaBean,需继承org.apache.struts.action.ActionForm类,它捕获通过HTTP请求传送的参数ActionForm针对每个HTML表单中的字段具有一个对应的属性Action

11、Servlet匹配请求中的参数和ActionForm中的属性,并调用ActionForm中的setter方法,将参数传入ActionForm我们的login.jsp有username和password两个表单字段(下面将会看到),所以,我们需要定义ActionForm中相应的setter方法:setUsername和setPassword方法ActionForm中的getter/setter方法,可以通过Eclipse集成环境,自动生成ActionForm中的内部属性全部定义为私有的(private),并通过公共(public)的getter/setter方法来访问package com.bj

12、sxt.strutstest;import org.apache.struts.action.ActionForm;public class LoginActionForm extends ActionForm private String username;private String password;/*return Returns the password.*/public String getPassword()return password;/*param password The password to set.*/public void setPassword(String p

13、assword)this.password=password;/*return Returns the username.*/public String getUsername()return username;/*param username The username to set.*/public void setUsername(String username)this.username=username;THUNISOFTStruts+Hibernate+Spring新员工培训创建LoginAction.javaAction是一个Java类,需继承org.apache.struts.a

14、ction.Action类ActionServlet将会组装ActionForm,并将它传递给ActionAction 通常负责:输入校验调用业务逻辑类执行业务逻辑操作决定返回哪个ActionForward我们的LoginAction做了如下事情,这些是一个Action通常都会做的最典型的事情:将输入的ActionForm强制转换为LoginActionForm从LoginActionForm对象中获取用户名以及密码的数据信息执行用户名及密码的逻辑判断操作(在通常的情况下,要将这些业务逻辑交给专门的类去处理,这里这样做是为了演示的需要)根据业务逻辑执行的结果,决定返回哪个ActionForwa

15、rd,我们在这里使用success这个标识来表示登录成功页面,用error标识来表示登录失败页面public class LoginAction extends Action public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response)throws Exception/将ActionForm强制转换为LoginActionFormLoginActionForm loginForm=(LoginActionFor

16、m)form;/从LoginActionForm中提取从页面表单传递过来的参数String username=loginForm.getUsername();String password=loginForm.getPassword();/根据这些参数,执行业务逻辑操作if(admin.equals(username)&admin.equals(password)/如果用户名和密码均为admin,则转向登录成功页面return mapping.findForward(success);else/否则转向登录失败页面return mapping.findForward(error);THUNIS

17、OFTStruts+Hibernate+Spring新员工培训创建Struts配置文件struts-config.xml在WebContent/WEB-INF目录下创建struts-config.xml文件并添加如下内容(空白的struts-config.xml),紧接着,我们将往这个空白的配置文件中添加其它配置信息struts-config.xml文件,是由ActionServlet读取的配置文件,它定义了所有关于Action、ActionForm、ActionForward等的详细信息THUNISOFTStruts+Hibernate+Spring新员工培训添加ActionForm配置,配

18、置LoginActionForm我们在struts-config.xml文件中,在标签的内部,添加如下配置:标签内部可以包含多个标签标签必须指定name和type属性name属性是给此ActionForm一个标识名称type属性指定了此ActionForm是哪个类,必须是全路径的类名THUNISOFTStruts+Hibernate+Spring新员工培训添加Action配置,配置LoginAction我们在struts-config.xml文件中,紧接着标签的下面,添加对LoginAction的配置标签可以配置的重要属性包括:path-从页面上通过一个什么样的URL路径来访问Action(不

19、包含.do)type 访问这个URL的时候,调用哪个Action类,这是Action的全路径类名name 这个属性用来标识哪个ActionForm将被创建,并将提交的表单组件给它scope FormBean的作用域范围,可以取值为session和request,一般取值都是requestTHUNISOFTStruts+Hibernate+Spring新员工培训创建login.jsp在WebContent目录下创建login.jsp文件,如右边所示添加一个表单,action为login.do,这个login.do的意思,将会告诉struts的ActionServlet,它将需要调用哪个Actio

20、n来处理这个表单的请求添加输入域username,这个username的表单字段,必须跟LoginActionForm中的属性一致添加密码输入域password请登录请输入用户名:请输入密码:THUNISOFTStruts+Hibernate+Spring新员工培训创建login_success.jsp和login_error.jsplogin_success.jsp登录成功欢迎您,您已经成功登录!您创建的第一个Struts应用程序已成功运行!login_error.jsp登录失败您的登录失败了,可能原因是用户名或密码不正确,请返回重新输入 返回登录页面THUNISOFTStruts+Hibe

21、rnate+Spring新员工培训启动Tomcat并运行login.jsp运行login.jsp之后,能看到如下所示的登录表单输入用户名admin和密码admin,将能看到登录成功的界面输入其它用户名或密码,将能看到登录失败的界面THUNISOFTStruts+Hibernate+Spring新员工培训在这个简单的应用程序背后发生了什么?当你从浏览器输入地址:http:/localhost:8088/Struts-Test/login.jsp,Tomcat将按通常情况来处理这个JSP并返回浏览器当你提交表单,实际上是提交到了这样一个URL地址:http:/localhost:8088/Stru

22、ts-Test/login.do,Tomcat将会根据web.xml的配置,将这个请求发送给相应的Servlet,在我们的应用中,Tomcat将会把这个请求发送给org.apache.struts.action.ActionServlet这个类(请参看web.xml的配置)然后ActionServlet根据struts-config.xml的配置信息,调用LoginAction对象去处理这个请求,在此之前,它会将页面表单的请求数据封装到LoginActionForm对象中,并传递给LoginActionLoginAction返回一个ActionForward对象,包含了将要转向的路径信息Act

23、ionServlet根据这个ActionForward对象所包含的路径信息,调用相应的页面去执行响应流程图请参考下一页THUNISOFTStruts+Hibernate+Spring新员工培训LoginAction应用程序的流程图THUNISOFTStruts+Hibernate+Spring新员工培训Struts项目架构图THUNISOFTStruts+Hibernate+Spring新员工培训Struts工作流程图THUNISOFTStruts+Hibernate+Spring新员工培训Struts与MVC视图(View)在使用Struts框架的web应用程序中,JSP以及相关的技术(如T

24、aglib)等共同组成视图层,这一层的主要职责是显示用户界面。Struts提供了很多机制让我们能更加轻松地创建视图控制器(Controller)Struts中,ActionServlet是控制器层组件模型(Model)模型包括:系统的内部状态以及改变系统状态的动作Struts中的Action和ActionForm是模型的一部分Struts建议把”做什么”(Action)和”如何做”(业务逻辑)相分离THUNISOFTStruts+Hibernate+Spring新员工培训创建业务逻辑处理类(Model)使用单例模式(Singleton)来创建业务逻辑处理类创建UserManager业务逻辑处理

25、类创建validate方法创建UserNotFoundException创建PasswordErrorExceptionpackage com.bjsxt.strutstest;public class UserManager private static UserManager userManager;private UserManager()public static synchronized UserManager getInstance()if(userManager=null)userManager=new UserManager();return userManager;publi

26、c void validate(String username,String password)throws UserNotFoundException,PasswordErrorExceptionif(!admin.equals(username)throw new UserNotFoundException();if(!admin.equals(password)throw new PasswordErrorException();THUNISOFTStruts+Hibernate+Spring新员工培训Action中如何调用业务逻辑处理类?我们看下面的代码:try UserManager

27、.getInstance().validate(username,password);return mapping.findForward(success);catch(UserNotFoundException e)e.printStackTrace();catch(PasswordErrorException e)e.printStackTrace();return mapping.findForward(error);通过添加业务逻辑处理类,我们将验证逻辑转移到了业务逻辑处理层THUNISOFTStruts+Hibernate+Spring新员工培训页面之间数据的传递如何将数据从Acti

28、on中传递到下一个JSP页面?一般使用request.setAttribute方法:在Action中,使用request.setAttribute(String name,Object data)方法往request中设置参数在JSP中,使用request.getAttribute(String name)来获取相应的参数在原来LoginAction的基础上编写相应的代码,测试页面数据传递传递登录成功者的帐号信息到成功页面,并显示THUNISOFTStruts+Hibernate+Spring新员工培训进一步理解Struts控制流THUNISOFTStruts+Hibernate+Spring

29、新员工培训细节:所有的页面请求由容器接收Struts的核心组件是ActionServlet,像其它所有Servlet一样,它是生存在容器中的,比如Tomcat、WebLogic等,当容器启动的时候,它会读取web.xml文件(部署描述符),告诉容器它会装入哪些Servlet一个标准的Servlet是通过servlet-mapping来设定,哪些请求,将会被提交到哪些servlet中Struts的servlet-mapping配置一般是:action *.do 这样配置的意思是:任何以.do结尾的URL请求,都会被发送到ActionServlet进行处理THUNISOFTStruts+Hiber

30、nate+Spring新员工培训小结MVC基本结构Struts的主要组成部分如何编写ActionForm如何编写Action如何在配置文件中定义映射URL、Action以及ActionForm如何获取从页面传递到Action的数据如何将数据从Action传递到下一个页面如何将业务逻辑与表示层分离需牢记原则:不要在Action中进行业务逻辑的处理,业务逻辑应交给专门的Model层去做在业务逻辑层抛出异常,并在Action中捕捉和处理THUNISOFTStruts+Hibernate+Spring新员工培训Struts Taglib易于使用,能代替直接在页面上写JAVA脚本便于重用用Struts

31、Taglib实现成功页面在以后的开发中,将逐步介绍一些常用的TaglibTHUNISOFTStruts+Hibernate+Spring新员工培训尝试简单的tag lib使用在JSP文件的头部添加如下声明:关于struts tag lib的说明,可以查看相关的参考文档常用的struts tag lib和和THUNISOFTStruts+Hibernate+Spring新员工培训JSTL简介:SUN的标准Taglib库JSP标准标签库(JSP Standard Tag Library,JSTL)迭代和条件判断 数据管理格式化 XML 操作 数据库访问 函数标签库表达式语言(EL)EL隐式对象存取

32、器运算符THUNISOFTStruts+Hibernate+Spring新员工培训在项目中使用JSTL拷贝jstl.jar和standard.jar到WEB-INF/lib目录下在JSP中添加伪指令常用JSTL标记、和THUNISOFTStruts+Hibernate+Spring新员工培训进一步理解ActionFormActionForm的要求必须扩展自org.apache.struts.action.ActionForm如果要获取表单的值,必须定义一个public属性如果要求在将ActionForm传递到Action之前进行校验,必须实现validate方法如果想要在组装前初始化属性,必须

33、实现reset方法DynaActionForm举例说明DynaActionForm的配置DynaActionForm的使用THUNISOFTStruts+Hibernate+Spring新员工培训ActionForm作为表单字段收集器通过HTTP提交表单数据通过HTTP上传文件通过例子演示文件上传的简易方法通过HTTP提交空字段修改原来的JSP文件,提交空字段THUNISOFTStruts+Hibernate+Spring新员工培训ActionForm作为类型转换器所有从表单提交到后台的数据均为字符串类型如何利用ActionForm自动转换int数据类型举例说明如何利用ActionForm自动

34、转换boolean数据类型举例说明如何利用ActionForm自动转换Date类型定义Converter注册Converter举例说明如何利用ActionForm自动转换Double类型举例说明THUNISOFTStruts+Hibernate+Spring新员工培训ActionForm作为传输对象ActionForm 可以被其它bean或者过程作为数据载体。Transfer 对象(也称为值对象(value object))用来通过发送粗糙规整的数据视图来交换精细规整的数据。ActionForm 的各个属性都必须是可变的。提示:使用粗糙规整 ActionForm来减小类维护。应用中的表单一般共

35、享属性创建一个基本的 ActionForm,具有表单需要的所有属性THUNISOFTStruts+Hibernate+Spring新员工培训ActionForwardActionForward能做什么?在Action中,经常问的问题是:“OK,操作成功了,然后呢?”ActionForward会回传给ActionServletActionForward中的路径,可以是一个带参数的URIActionForward的属性namepathredirectclassName转发(forward)与重定向(redirect)全局ActionForward与局部ActionForwardTHUNISOFTS

36、truts+Hibernate+Spring新员工培训动态创建ActionForward将ActionForward定义在一个Struts 配置文件中是个好的选择但也可以在Action中动态创建ActionForward,而不需要在配置文件中指定如下所示:ActionForward forward=new ActionForward(/do/itemEdit?action=edit);举例说明THUNISOFTStruts+Hibernate+Spring新员工培训ActionMapping理解ActionMappingpathforwardtypenamescopevalidateinput

37、parameterunknow ActionMappingTHUNISOFTStruts+Hibernate+Spring新员工培训Scope属性在Action映射配置中,Scope属性可以取值为:request或sessionScope属性表示:Struts框架在将ActionForm对象(与目标Action匹配的ActionForm)传送到Action之前,会将ActionForm对象保存的位置如:scope=“request”配置,将指示struts调用request.setAttribute(“ActionForm名称”,ActionForm对象)方法,将ActionForm对象保存到

38、request。其中,ActionForm名称与struts-config.xml配置中的ActionForm名称一致,如:,其中uploadForm就是其名称。我们明白scope属性的意义之后,就可以利用struts的这些特性,来解决开发过程中的某些常见问题THUNISOFTStruts+Hibernate+Spring新员工培训常见问题:如何在程序出现异常的时候返回录入界面重新录入假设现在要在一个页面上输入用户的信息(可能会有十几个属性值需要输入),用户不小心输入了一个重复的帐号,而帐号是不允许重复的,这个时候,系统应该提示用户有关帐号重复的信息,同时让用户重新选择一个帐号。这种情况下,我

39、们需要返回用户录入界面,让用户修改帐号字段。现在的问题是:如何在返回这个录入界面的时候,将用户输入的其它信息保持住?THUNISOFTStruts+Hibernate+Spring新员工培训搞定Action对象如果应用需要保存一个记录到数据库中,典型的过程可能是ActionForward提供一个链接到输入页面ActionForm捕获输入ActionMapping配置ActionAction将输入送到数据库中(通常会将这一步操作委托给业务逻辑类去实现)J2EE是一个多线程的环境,服务器针对每个请求启动一个线程来处理。是一个多线程的环境,服务器针对每个请求启动一个线程来处理。所以有可能会有多个线程

40、同时访问一个所以有可能会有多个线程同时访问一个Servlet实例的情况实例的情况在在Struts里面也是一样的,有可能会有多个线程同时访问一个里面也是一样的,有可能会有多个线程同时访问一个Action实例实例的情况的情况所以必须保证所以必须保证Action类中的方法具有类中的方法具有“可重入性可重入性”,即不能在,即不能在Action的的方法里改变实例变量的值方法里改变实例变量的值THUNISOFTStruts+Hibernate+Spring新员工培训Action的主要职责校验输入数据调用业务逻辑方法检测处理异常根据逻辑进行转向操作THUNISOFTStruts+Hibernate+Spri

41、ng新员工培训I18N问题什么是I18N问题?在英文中,国际化(Internationalization)被缩写为I18N,即只取首尾两个字母,中间字母为18个 问题在哪里?页面字符串硬编码异常消息的硬编码提示信息的硬编码THUNISOFTStruts+Hibernate+Spring新员工培训Java如何支持I18N?一个简单的例子不支持I18N的例子 NoI18NSample.java支持I18N的例子我们需要将硬编码文本转移到外部的资源文件编写MessagesBundle.properties编写MessagesBundle_zh_CN.properties编写MessagesBundl

42、e_en_US.properties编写I18NSample.java运行I18NSample.java乱码?因为资源文件必须是Latin-1或Unicode编码(如udddd)的字符使用native2ascii工具,将中文资源文件进行转换THUNISOFTStruts+Hibernate+Spring新员工培训Java支持I18N的编码过程总结1、创建属性文件(可能要用native2ascii工具转换)2、定义Locale对象3、创建一个ResourceBundle对象ResourceBundle对象用于分离跟本地相关的数据如果找不到相应语言或国家代码的属性文件,将使用默认的属性文件(即没有

43、标识语言和国家代码的属性文件:MessagesBundle.properties)其创建方式如下:message=ResourceBundle.getBundle(MessagesBundle,currentLocale);第一个参数,表示要从哪些资源属性文件中(MessagesBundle_XX.properties)获取数据第二个参数,是一个Locale对象,表示要选择哪个资源属性文件4、从ResourceBundle对象中获取数据THUNISOFTStruts+Hibernate+Spring新员工培训Locale对象我们通过指定一个语言代码和国家代码来创建一个Locale对象国家代码是

44、可选的语言代码是小写字母;国家代码是大写字母语言代码是小写字母;国家代码是大写字母Locale.getDefault()可以获得系统当前的LocaleJava都支持哪些语言代码和国家代码?DateFormat.getAvailableLocales()语言代码标准:http:/ftp.ics.uci.edu/pub/ietf/http/related/iso639.txt国家代码标准:http:/userpage.chemie.fu-berlin.de/diverse/doc/ISO_3166.html与Locale相关的数据:消息文本(带参数?)日期(时间)货币(数字)等等。THUNISOF

45、TStruts+Hibernate+Spring新员工培训Struts如何支持I18N1、需要在struts配置文件中指定资源属性文件的位置和名称,如2、在相应的位置放置相应的文件3、在JSP页面中使用来输出文本,以避免硬编码以登录页面的国际化作为例子讲解创建相应的资源属性文件用标签替换登录页面的硬编码文本测试(更改网页显示语言,以便测试不同的版本)THUNISOFTStruts+Hibernate+Spring新员工培训关于message-resources 配置中parameter的值parameter的值,可以指定资源文件的位置和名称举例:表示在类路径根目录(WEB-INF/classe

46、s目录)下有MessageResources_XX_XX.properties文件(注意:国家代码可以省略,跟java中对资源属性文件的处理一样)表示在类路径根目录下,有一个resources目录,在这个resources目录中存放着所有的application_XX_XX.properties资源属性文件THUNISOFTStruts+Hibernate+Spring新员工培训如何用程序切换网页显示的语言struts利用在session中存放一个Locale对象来达到设置当前语言的目的默认的情况下,struts根据网页向后台提交时所包含的语言编码信息来提供缺省的Locale对象,这就是我们为

47、什么可以通过更改网页显示语言设置,就能显示不同的语言文字的原因。struts在session中存放的这个Locale对象,取名为:Globals.LOCALE_KEY 的值,Globals是struts框架提供的一个对象利用这个原理,我们可以用编程的方式来手工切换整个应用系统的语言。举例说明ChangeLanguageActionTHUNISOFTStruts+Hibernate+Spring新员工培训Struts消息处理为什么需要消息处理?比如登录成功的提示比如创建失败的提示等等总之,程序总是要通过界面来跟用户交互,所以,在交互的在交互的过程中过程中,就产生了众多的消息文本struts提供了

48、专门的处理机制,来将这些消息文本国际化,避免消息文本的硬编码消息处理,就是在Action和JSP之间传递的消息文本的处理(区别于JSP页面硬编码文本的消息,JSP页面消息可以使用标签来处理)Struts交互消息,是通过ActionMessages等对象,以及相应的标签来处理的THUNISOFTStruts+Hibernate+Spring新员工培训 如何创建消息对象?ActionMessages与ActionMessage对象ActionMessages对象是ActionMessage对象的集合一个ActionMessage对象,代表一个国际化消息文本(字符串)如何创建ActionMessag

49、es对象?ActionMessages messages=new ActionMessages();如何创建ActionMessage对象?ActionMessage msg=new ActionMessage(“key”);其构造方法带的参数,就是一个在资源属性文件中的key,所以,它能表示一个国际化消息文本如何将ActionMessage对象添加到ActionMessages对象中?messages.add(“message_id”,msg);第一个参数(message_id)表示本ActionMessage对象在ActionMessages对象中区别于其它ActionMessage对象的

50、标识符THUNISOFTStruts+Hibernate+Spring新员工培训如何将消息对象从Action中传递到下一个页面(JSP)?首先我们要决定的是,我们要传递的消息是普通消息普通消息还是错误消息错误消息?普通消息:即普通的消息文本错误消息:即提示错误的消息文本本质上,这两种消息没有什么区别,都是消息文本,但是如果一个页面同时需要显示普通的消息文本和错误消息文本的时候,就需要进行区分了,比如不同类型的消息文本可能要用不同的样式来显示通过一句简单的代码,将ActionMessages对象保存到HttpServletRequest对象中保存普通消息:保存普通消息:this.saveMess

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁