??xml version="1.0" encoding="utf-8" standalone="yes"?>国产AV无码专区亚洲AV蜜芽,亚洲综合区小说区激情区,亚洲男人天堂2020 http://m.tkk7.com/bingle/category/14552.html最大的喜悦Q莫q于技术的q步 Q?
坚定梦想Q毕生追? zh-cn Wed, 11 Apr 2007 14:14:18 GMT Wed, 11 Apr 2007 14:14:18 GMT 60 [转]Ibatis开发Demo http://m.tkk7.com/bingle/archive/2007/04/11/109931.html冰浪 冰浪 Wed, 11 Apr 2007 08:08:00 GMT http://m.tkk7.com/bingle/archive/2007/04/11/109931.html http://m.tkk7.com/bingle/comments/109931.html http://m.tkk7.com/bingle/archive/2007/04/11/109931.html#Feedback 0 http://m.tkk7.com/bingle/comments/commentRss/109931.html http://m.tkk7.com/bingle/services/trackbacks/109931.html 阅读全文 ]]> [转]Z不用spring、struts2、easyjweb{开源框?/title> http://m.tkk7.com/bingle/archive/2007/04/11/109876.html冰浪 冰浪 Wed, 11 Apr 2007 05:25:00 GMT http://m.tkk7.com/bingle/archive/2007/04/11/109876.html http://m.tkk7.com/bingle/comments/109876.html http://m.tkk7.com/bingle/archive/2007/04/11/109876.html#Feedback 1 http://m.tkk7.com/bingle/comments/commentRss/109876.html http://m.tkk7.com/bingle/services/trackbacks/109876.html 阅读全文 ]]> [转]Java EE 5.0能取代StrutsQSpring和Hibernate吗? http://m.tkk7.com/bingle/archive/2007/03/28/107059.html冰浪 冰浪 Wed, 28 Mar 2007 12:32:00 GMT http://m.tkk7.com/bingle/archive/2007/03/28/107059.html http://m.tkk7.com/bingle/comments/107059.html http://m.tkk7.com/bingle/archive/2007/03/28/107059.html#Feedback 0 http://m.tkk7.com/bingle/comments/commentRss/107059.html http://m.tkk7.com/bingle/services/trackbacks/107059.html 阅读全文 ]]> [转]Struts2与Struts1的对? http://m.tkk7.com/bingle/archive/2007/01/15/93966.html冰浪 冰浪 Mon, 15 Jan 2007 07:33:00 GMT http://m.tkk7.com/bingle/archive/2007/01/15/93966.html http://m.tkk7.com/bingle/comments/93966.html http://m.tkk7.com/bingle/archive/2007/01/15/93966.html#Feedback 0 http://m.tkk7.com/bingle/comments/commentRss/93966.html http://m.tkk7.com/bingle/services/trackbacks/93966.html Action c? ?Struts1要求Actioncȝ承一个抽象基cRStruts1的一个普遍问题是使用抽象cȝE而不是接口? ?Struts 2 Actioncd以实C个Action接口Q也可实现其他接口,使可选和定制的服务成为可能。Struts2提供一个ActionSupport基类d?常用的接口。Action接口不是必须的,M有execute标识的POJO对象都可以用作Struts2的Action对象? U程模式: ?Struts1 Action是单例模式ƈ且必LU程安全的,因ؓ仅有Action的一个实例来处理所有的h。单例策略限制了Struts1 Action能作的事Qƈ且要在开发时特别心。Action资源必须是线E安全的或同步的? ?Struts2 Action对象为每一个请求生一个实例,因此没有U程安全问题。(实际上,servlet容器l每个请求生许多可丢弃的对象,q且不会D性能和垃圑֛攉题)
Servlet 依赖: ?Struts1 Action 依赖于Servlet API ,因ؓ当一个Action被调用时HttpServletRequest ?HttpServletResponse 被传递给executeҎ? ?Struts 2 Action不依赖于容器Q允许Actionq容器单独被测试。如果需要,Struts2 Action仍然可以讉K初始的request和response。但是,其他的元素减或者消除了直接讉KHttpServetRequest ?HttpServletResponse的必要性?
可测? ?试Struts1 Action的一个主要问题是executeҎ暴露了servlet APIQ这使得试要依赖于容器Q。一个第三方扩展Q-Struts TestCaseQ-提供了一套Struts1的模拟对象(来进行测试)? ?Struts 2 Action可以通过初始化、设|属性、调用方法来试Q“依赖注入”支持也使测试更Ҏ?
捕获输入: ?Struts1 使用ActionForm对象捕获输入。所有的ActionForm必须l承一个基cR因为其他JavaBean不能用作ActionFormQ开发者经常创建多余的cL莯入。动态BeanQDynaBeansQ可以作为创ZlActionForm的选择Q但是,开发者可能是在重新描q?创徏)已经存在的JavaBeanQ仍然会D有冗余的javabeanQ? ?Struts 2直接使用Action属性作入属性,消除了对W二个输入对象的需求。输入属性可能是有自??属性的rich对象cd。Action属性能够通过web面上的taglibs讉K。Struts2也支持ActionForm模式。rich对象cdQ包括业务对象,能够用作输入/输出对象。这UModelDriven Ҏ简化了taglib对POJO输入对象的引用?
表达式语aQ? ?Struts1 整合了JSTLQ因此用JSTL EL。这UEL有基本对象图遍历Q但是对集合和烦引属性的支持很弱? ?Struts2可以使用JSTLQ但是也支持一个更强大和灵zȝ表达式语aQ-"Object Graph Notation Language" (OGNL).
l定值到面QviewQ? ?Struts 1使用标准JSP机制把对象绑定到面中来讉K? ?Struts 2 使用 "ValueStack"技术,使taglib能够讉KD不需要把你的面QviewQ和对象l定h。ValueStack{略允许通过一pd名称相同但类型不同的属性重用页面(viewQ? cd转换Q? ?Struts 1 ActionForm 属性通常都是Stringcd。Struts1使用Commons-Beanutilsq行cd转换。每个类一个{换器Q对每一个实例来说是不可配置的? ?Struts2 使用OGNLq行cd转换。提供基本和常用对象的{换器?
校验Q? ?Struts 1支持在ActionForm的validateҎ中手动校验,或者通过Commons Validator的扩展来校验。同一个类可以有不同的校验内容Q但不能校验子对象? ?Struts2支持通过validateҎ和XWork校验框架来进行校验。XWork校验框架使用为属性类cd定义的校验和内容校验Q来支持chain校验子属?
Action执行的控Ӟ ?Struts1支持每一个模块有单独的Request ProcessorsQ生命周期)Q但是模块中的所有Action必须׃n相同的生命周期? ?Struts2支持通过拦截器堆栈(Interceptor StacksQؓ每一个Action创徏不同的生命周期。堆栈能够根据需要和不同的Action一起用?br />
]]>[转]刚刚出炉?Q-QJSF1.2新特?/title> http://m.tkk7.com/bingle/archive/2006/12/21/89205.html冰浪 冰浪 Thu, 21 Dec 2006 02:11:00 GMT http://m.tkk7.com/bingle/archive/2006/12/21/89205.html http://m.tkk7.com/bingle/comments/89205.html http://m.tkk7.com/bingle/archive/2006/12/21/89205.html#Feedback 0 http://m.tkk7.com/bingle/comments/commentRss/89205.html http://m.tkk7.com/bingle/services/trackbacks/89205.html 注:此文{载自dev2devQ?a >http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=121&threadID=35942 最新翻译的Q?br /> JSF1.2技术的新特性ȝ 本文的主要内容: “Web Tier to Go With Java EE 5”系列文章中Q“JSF1.2新特性”是W一。就像在文中表述的一PJSP技术的优势随着JSF技术的发展得到了进一步的扩大Q这U优势是通过l一EL表达式徏立v来的。统一JSP的框架也是JSF1.2技术中众多重要成W之一Qƈ在JSR252规范下进行开发。除了这些变化ؓQJSF技术还贡献了大量的重要的容易用的Ҏ。这文章简要的描述一些重要的基本Ҏ,大概有如下几点: * l一JSP技?br /> * 改进自定义信息的支持 * 提供状态保存特?br />* 能够关闭自动生成lg客户端ID * 新的setPropertyActionListener标签 《JavaServer Faces规范》的前言部分提供了一l完成的Ҏ描q?br /> l一JSP技术: JSP和JSF技术相对立的核心是它们之间的页面生命周期的不同。在以前的文章中已经介绍了JSP规范QJSP规范指出Q页面的元素被执行显C时QJSP支持单一的“渲染-响应”生命周期, 然后立即渲染面。JSF的生命周期分成了多个阶段Q当一个组件树被创建完毕,lg的数据就会被处理Q然后组件被渲染q显C在面上。然而,一个JSF面q不需要在执行后立x染。因此,在JSP面上用的JSFlg被渲染时Q有时候ƈ不是按照正常的顺序完成,而且会丢q件的一些状态或者其他的问题产生?br />q么文章涉及到JSP2.1的新Ҏ。这里会从一?个方面详l的介绍JSF技术的改进的地方: * 首先JSFlg支持JSTL的forEach标签 * 改进treelg创徏Ҏ和内容组l?br />* 反对只用JSF技术的ELQ赞成用统一的EL 首先JSFlg支持JSTL的ForEach标签像在描qJSP技术新Ҏ的文章中表q的一PJava EE web层中的统一EL的一个新Ҏ就是:q代标签Q例如JSTL的forEach能够在JSFlg中直接用。例如,使用输入lg构徏一个简单的表格Q可以通过下列代码来实玎ͼ <table> <tr> <th>Item Name</th> <th>Item Price</th> <th>Item Quantity</th> </tr> <c:forEach var="item" items="#{shoppingCart.items}"> <tr> <td><h:outputText value="#{item.name}" /></td> <td><h:outputText value="#{item.price}" /></td> <td><h:inputText value="#{item.quantity}" /></td> </tr> </c:forEach> <h:commandButton value="update quantities" action="update" /> </table> 没有l一使用ELQ?q几乎是不可能实现的?br /> 改进treelg创徏Ҏ和内容组l?br /> 在Hans Bergsten的《article about the use of JavaServer Faces technology with JSP pages》文中写到的Q合用JSP代码和JSF标签有时候会产生预期不到的结果。例如,在下面的代码中,JSF lgoutputText输出的文本内容“Hi”本来应该在文本内容“what’s your name?”前面显C: <h:panelGroup> <h:outputText value="Hi. "/> What's your name? </h:panelGroup> 然而,q两行代码的输出是顺序是相反的。是什么导致了问题的发生?JSF的实现是以JSP的渲染引擎来渲染lg树的。因为JSP会立x行ƈ把静态文本内Ҏ在response中,?lt;panelGroup>的子节点标签直到相应的结束标{?lt;/panelGroup>匚w后才会被渲染Q所以“what’s your name?”就会在“Hi”之前显CZ?br />像这L问题在Hans Bergsten的文中已l提到ƈ在JSF1.2版本中得C修改。解x案包括:怎样改变lg树的创徏、各U内容的处理和渲染等{。最重要的改变如下几点: * 创徏和渲染组件树被分?步,Z防止JSP引擎q早的渲染页面内宏V?br />* 所有的渲染器的rendersChildren属性值现在已l设计ؓ“true”,目的旉止联合组件的内容在各自的lg内部分别渲染?br />* 标签内部的静态内容对应的渲染器的rendersChildren属性D|ؓtrueQ目的是获取q保存一个短暂的UIOutputlgq把该组件添加到lg树中?br />* 状态管理器从ViewTag中移CViewHandler中,Z防止write State在实际保存过E中被调用?br /> 在接下来的“Web Tier to Go With Java EE 5”系列文章中会提供更多的关于描述lg树的创徏和内容组l的l节Q这pJSF标签lg中用JSP代码成ؓ了可能?br /> 反对只用JSF的ELQ赞成用统一的EL 如本文前面的内容介绍QJSP和JSF的EL表达式会整合成统一的EL。这意味着现在的JSF的EL是不推荐使用的。在介绍l一的EL前已l用了JSF开发的应用Q请务必做好h向后兼容的工作?br /> 然而,Z利用l一EL的特性,你可能需要改变原来自定应的组件和自定义的标签。要UL到统一ELQ首先要把ValueBinding换成ValueExpressionQ把MethodBinding换成MethodException。这些改变都相对的容易,而且q有更好的办法可以完成这些改变。例如,因ؓ所有标准的标记属性都可以讉KD辑ּQ你的标记处理程序不需要检属性是可以接收、访问一个D辑ּ?br /> 要了解更多关于如何移植到l一EL的内容,请参见文章“Unified Expression Language?http://java.sun.com/products/jsp/reference/techart/unifiedEL.html) 改进易用性来支持自定义信?br /> JSF1.2技术的一个重要改q就是在JSF应用中增加自定义信息的能力。这个改q包括如下几个方面: * 一l新的标准{换信?br />* 对输入组件提供了新的属性:requiredMessage、converterMessage、validatorMessage * 入组件提供了新的label属性,允许lg的名字中包含错误信息 * 提供新的资源l定元素在应用中l定资源?br /> 一l标准的转换器信?br /> 以前的JSFl标准验证器提供了一l标准的错误信息。版?.2增加了标注{换器提供了一l错误信息。要查看q些信息Q请参考JSF1.2规范(http://jcp.org/en/jsr/detail?id=252)的第2.5.2.4节?br /> 新属性:requiredMessage,converterMessage,validatorMessage 很多情况下,标准的错误提CZ息很适合为我们的需要。如果不合适,我们可以使用自定义的信息来覆盖这些标准的信息Q要完成个目的,是通过输入lg的新属性requiredMessage、converterMessage、validatorMessage来完成?br /> 当你需要修改信息时Q新的特性允怽覆盖原有的信息。例如,假设你在userid和password2个域中用了验证长度的验证器。你希望一个错误信息提C“Userid必须?个字W”,另一个“Password必须?个字W”,但是你希望对q?个输入域使用同一个验证器。通过validatorMessage属性,你可以在适当的组件上讄Ҏ的信息,׃用ؓ每个验证器实例提供单独的提示信息?br /> q些属性接收字W型的g及D辑ּQ和JSF的标记属性一L工作原理。因此,你可以用D辑ּ来引用绑定资源中的信息,如下面的例子Q?br /><h:inputText value="#{customer.userID}" validatorMessage="#{customMessages.userIdMessage}" > <f:validateLongRange minimum="9" maximum="9"/> </h:inputText> 像你猜想的一P输入lg的属性requiredMessageD盖了默认的信息提C。输入组件的属性converterMessageD盖了默认的{换信息提C。同LQ输入组件的属性validatorMessageg覆盖了默认的验证信息提示?br /> 因ؓq种Ҏ,面开发h员现在可以更为合适的提供错误的提CZ息。这P用户能够更准的直到错误的根源?br /> 输入lg的新属性:label 输入lg的label新属性是另外一个帮助用L认错误信息的重要Ҏ。许多由lg产生的标准错误信息包括根据参数得到的信息。输入组件的label属性值是用来适当取代相关的默认信息的。例如,下面的信息是与DateTimeConverter相关的信息,用DATE_ID标识Q?br /> {2}: "{0}" could not be understood as a date. q就是说Q你有一个DateTimeConverter实例Qƈ与一个文本输入框l定。设|输入组件的label属性ؓBirthDate。如果用户在文本输入框中输入“older than the hills”,转换器就p|了。当面再次被渲染的时候,用户p看到如下的信息提C: Birth Date: "older than the hills" could not be understood as a date. Labellg接受文本内容Q也接受D辑ּ。所以,在用其他的JSF标签属性时Q你可以使用表达式来引用l定的资源文件内宏V?br /> 新的资源配置元素 JSF1.2版本以前的规范,面开发h员用loadBundle标签来引用资源文Ӟ从而达到本地化的目的。在新的1.2版本中,面开发h员一样可以在面中用资源绑定?br />更高效率的装载绑定好的资源,包括在应用系l的配置文g中用资源绑定元素进行注册资源的l定Q新的规范提供了一个很好的入口方式。下面的资源l定元素注册一个叫做“CustomMessages的ResourceBundlec,q个cd在应用系l的资源包里Q?br /><resource-bundle> <var>customMessages</var> <base-name>resources.CustomMessages</base-name> </resource-bundle> var子元素定义了资源引用名称Q页面开发h员在开发页面时可以采用如下的方式进行调用: <h:outputText value="#{customMessages.myText}" /> 在这个例子中QmyText是定义在资源文件中Q我们要引用的信息的键(keyQ?br />通过q个新的资源l定元素Q我们可以在应用pȝ中绑定更多的资源文g。这样做Q新的元素的使用Q不仅消除了在多个页面用“loadBundle”绑定资源的方式Q而且大大提高了性能Q因载资源是很“昂贵”的操作?br /> 提供状态保存特?br /> JSF1.2版本在状态管理方面主要有2个变化。一个变化是Q当应用pȝ使用多个框架QframeQ或者窗?window)Ӟ整合pȝ状态的不稳定问题;另一个变化是提供了客L安全状态操作?br /> 在多框架或者多H口的应用中pȝ状态不E_的原因是q些复杂逻辑试图会把根视囄ID重复复制Q因此状态管理就变得混ؕ了。在1.2版本中做了一些修改,提供了一些状态管理的API来解册个问题?br /> 首先Q在视图中的每一个窗口(WindowQ或者框ӞFrameQ都有唯一的ID标识Q这个ID标识是视图根ID和一个随x据联合组成,q保存在一个隐藏域中,用来q接H口QWindowQ或者框ӞFrameQ。ViewHandler中的writeStateҎ已经被修改,q用来生成唯一的IDQƈ且在JSF的“渲染-回应”阶D输出到客户端。另外,encodeEndҎ中,UIForm也被修改Q让它在输出“闭合标{䏀到客户端的q个q程之前调用writeStateҎQ以便多表单QformQ的状态被保存下来?br /> 同时Q在物理“渲染-回应“阶D,StateManager提供了最新的saveSerializedViewҎ会用这个唯一的ID把对应的视图序列化到Session中。例如:如果服务器崩溃了Q这些被保存的状态就能在另一个服务器中再ơ用。所以,“状态-保存”机制在JSF1.2版本在中被高度有效的支持。最后,ViewHandlercM的restoreViewҎ可以使用唯一的ID来标识恢复视图,即是在“恢复视䏀阶Dc?br /> 另一个重要的规定Q就是允许对客户端进行加密,包括在发送一个关闭标{ֈ客户端之前。你可以选择声明的方式对客户端进行加?使用ClientStateSavingPasswordq个cM为加密方式的入口Q如下所C: <env-entry> <env-entry-name> com.sun.faces.ClientStateSavingPassword </env-entry-name> <env-entry-value>somePassword</env-entry-value> <env-entry-type>java.lang.String</env-entry-type> </env-entry> 你提供的密码通常是生??对的方式q行加密。如果这个环境入口没有在配置文g中定义,q个加密Ҏ׃会被执行?br /> 关闭自动生成客户端组件ID的功?br /> JSF采用一U算法来生成客户端组Ӟ包含在Form中)的表C号QIDQ,客户端组件的ID如下面的形式Q?br /> [form ID]:[clientID] 面开发h员可以对指定ID的formlg或者包含在该form中的其他lgq行操作。如果页面开发h员没有指定form的IDh者组件的IDP那么pȝ会自动生成?br /> 早期版本的JSF规范没有规定q个法Q只要开发h员理解其工作原理够了。此外,对于自定义的lg或者一个渲染类来说Q页面开发h员没办法定是否已经讄了组件的客户端IDh者是否系lؓ它们自动生成。最后,因ؓ某种原因Q渲染器的开发h员可能无法改变它的名Uͼ但是仍然要在JavaScript中引用它?br /> 最后的JSF规范明确的说明了生成客户端组件ID的算法。我们可以在UIComponent的API文档中找到相关信息。由于UIFormlg增加了prependId属性,相应的算法也做了变化。页面开发h员现在可以改变该属性的默认|默认gؓfalseQ可以改为trueQ,q样p明可以不需要用Form的ID作ؓlgID的前~了。下表格昄了正常情况下生成客户端组件ID的不同点Q?br /> Table 1:客户端组件ID生成情况 场景 prependId=rue prependID=alse 开发h员没有设|ID _id0:_id1 _id1 开发h员仅仅设|了form的ID myForm:_id0 _id0 开发h员只讄lgID _id0:myComponent myComponent 开发h员对form和组仉讄了ID myForm:myComponent myComponent 新标{setPropertyActionListener 除了actionListener标签之外Q允许我们给自定义的lg注册一个Action ListenerQ核心的标记库现在已l包括在setPropertyActionListener标记中。用q个标记注册一个特定的action listener到ActionSource实例中,q与具体的组件关联v来。当lg被激z,listener׃把对象的引用存储到标记的属性中?br /> Z展示标记的用处,假设我们有一个forEach标记Qƈ且在其中使用了commandButtonQ以及用iterator来显CZl书的信息,代码如下Q?br /><c:forEach items="#{bookDBAO.books}" var="book" varStatus="stat"> <c:set var="book" scope="request" value="${book}"/> ... <h:commandButton id="add" action="#{catalog.add}" value="#{bundle.CartAdd}"> <f:setPropertyActionListener target="#{requestScope.book}" value="#{book}"/> </h:commandButton> <c:remove var="book" scope="request"/> </c:forEach> 当用L击buttonQ选择的book׃增加到购物R中,q且昄下一c?br />如果你熟悉JSTLQ那你就直到forEach的var属性是在本面那有效的。然而,book的数据需要在request范围内有效,q样昄面Q点d转到的下一面Q才能范问到book的数据。因此,setPropertyActionListener标签通常用来把当前(bookQ对象设|ؓrequest讉K范围内?br /> 在这个例子中QsetPropertyActionListener标签的value属性指的是“book”对象;target属性是表达式“requestScope.book”的引用Qƈ且和commandButtonlg建立了关联?br /> ȝ q篇文章只是JSF1.2规范的简要说明,介绍一些新的特性和常见问题的解x法。我们徏议大家用一下JSF1.2。如果你有一些问题或者看法,请发邮gQusersQjavaserverfaces.dev.java.netQ给我们或者加入我们的C(http://java.sun.com/j2ee/javaserverfaces)。同Ӟ期待下一文章在我们的网站上出现?br />
]]> 受控bean与实体bean的数据传?/title> http://m.tkk7.com/bingle/archive/2006/09/25/71721.html冰浪 冰浪 Mon, 25 Sep 2006 05:51:00 GMT http://m.tkk7.com/bingle/archive/2006/09/25/71721.html http://m.tkk7.com/bingle/comments/71721.html http://m.tkk7.com/bingle/archive/2006/09/25/71721.html#Feedback 4 http://m.tkk7.com/bingle/comments/commentRss/71721.html http://m.tkk7.com/bingle/services/trackbacks/71721.html
q些日子在用JSFQHibernatel合来实C单应用——留a本?br /> 思\如下Q?br /> 用JSF作ؓView层,Hibernate实现 Model层即数据持久化,而Control层则采用POJOQ即JavaBean?br /> 在model层,用hibernate生成持久化对象,作ؓ与数据库间数据交互的“介质对象”(自己命名的,呵呵Q。如留言信息cMessage.classQ这也是POJOQ即实体beanQ所含方法只是setter/getter。但其却与DB表中数据cd相对应的?br /> 在view层JSF中,与页面显C组件进行值绑定的受控bean承担了数据显CZ操作的Q务。在此应用中Q如MessageBean.classQ这是与hibernate中的Message.classq一实体bean相对应的?br /> Z么不直接使用实体bean作ؓview层的数据昄对象呢?q是因ؓ在MVC模式中,M两层间都应该是“松藕合”状态,而不产生怺依赖的情形?br /> 既然如此Q受控bean与实体bean之间又如何实现数据的传递呢Q?br /> 在control层中Q徏立一个MessageBuilder.classc,来实Cbean间的交互Q这个类中主要利用了org.apache.commons.beanutils.BeanUtilscȝcopyPropertiesҎ来实现。MessageBuilder.java的具体实C码如下: //**********MessageBuilder.java的具体实C码begin************** package efan5.myguestbook.control;
import java.lang.reflect.InvocationTargetException;
import org.apache.commons.beanutils.BeanUtils;
import efan5.myguestbook.model.Message; import efan5.myguestbook.view.MessageBean;
public class MessageBuilder { public MessageBuilder(){} public static Message createMessage(MessageBean messageBean){ Message message = new Message(); try { BeanUtils.copyProperties(message, messageBean); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } return message; } public static MessageBean createMessageBean(Message message){ MessageBean messageBean = new MessageBean(); try { BeanUtils.copyProperties(messageBean,message); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } return messageBean; }
} //**********MessageBuilder.java的具体实C码end************** q就实现了受控bean与实体bean的数据交互?br /> PSQBeanUtils.copyProperties(obj1,obj2) Ҏ要对象obj1,obj2中的相对应的属性的名字和数据类型一_否则会生数据类型不匚w的异常。但q不是要求属性数目一致?/font>
]]>
վ֩ģ壺
AV߹ۿ |
99þþƷձһ |
ůůѸձһ |
˾Ʒһ |
þۺϸϾþù |
AVAVպAVվ |
һƵ |
Ƶ߹ۿ |
þþþޱٸ |
ڳ߿ |
freežž |
ҹӰ߹ۿ |
պϵ |
ëƬѲ |
av֮˵վ |
ĻѲ |
Ļ |
߹ۿ |
bvվ |
ëƬƵվۿ |
AVۺɫһ |
xxxxx |
Ƶ߹ۿ |
ר˿ŵƵ |
wwwxxx |
ȫaһëƬ˰ |
AëƬþ |
avպav߳ |
Ůվ91ɫ |
һëƬֱ |
Ʒ߲ҳ |
ƬaëƬ |
žžþþƷѿС˵
|
˳վɫ |
ҹþþþþ |
պëƬ |
Ʒ97˳Ƶ |
AVһӰƬ |
ƷYW߹ۿ
|
ѨƬ߹ۿͬѧ
|
99ƵȫѾƷȫĻ
|