Re: T4.1.3 without ajax

2007-11-19 Thread 9902468
Any info when 4.1.4 will be out? (Educated guesses?) - 99 Andreas Andreou wrote: > > add ajaxDelegate="ognl:null" to the Shell component... > > I believe that it is still possible that Tapestry adds a dojo import > script > in some cases (related to the @Form component) but you can't get awa

RE: Using Alfresco from within Tapestry

2007-11-19 Thread Marcus.Schulte
If your Tomcat instance is dedicated to alfresco and your tapestry app, I would try to go with the shared/lib approach. Logging in Tomcat is a bit complicated to get right due to the funny classloading hierarchy and commons-logging's log-method detection. I put commons-logging into each web-app's l

Re: T5: Tapestry-Hibernate, do we have to save()?

2007-11-19 Thread lasitha
On Nov 20, 2007 12:11 AM, Ezra Epstein <[EMAIL PROTECTED]> wrote: > I imagine that if you use Spring's declarative transactions on the service > layer so that the read()/get() method does not start a read/write transaction > but the save() method does then changing the object without calling "sav

Re: T5: Tapestry-Hibernate, do we have to save()?

2007-11-19 Thread lasitha
On Nov 20, 2007 12:31 AM, Thiago H de Paula Figueiredo <[EMAIL PROTECTED]> wrote: > On Mon, 19 Nov 2007 16:34:46 -0200, lasitha <[EMAIL PROTECTED]> > wrote: > > HiberTapestry does not work like tapestry-hibernate*, just opening a > transaction when a transactional method is invoked. A method is > t

Re: T5 How to difine dynamic path for image

2007-11-19 Thread Howard Lewis Ship
I'd just inject all three assets and choose which one to return. Injection is cheap. Maybe your situation is actually more complex. On Nov 19, 2007 5:51 PM, Doublel <[EMAIL PROTECTED]> wrote: > Yes it works well.Thanks very much > complete code : > > @Inject > private ComponentResources r

Re: T5 How to difine dynamic path for image

2007-11-19 Thread Doublel
Thanks for your feeback; I did ,it can work with this code assetSource.findAsset(null, "context:images/weathePath/" + weatherPath", null) 2007/11/20, lasitha <[EMAIL PROTECTED]>: > > On Nov 20, 2007 7:21 AM, Doublel <[EMAIL PROTECTED]> wrote: > > Yes it works well.Thanks very much > > ... > >

Re: OGNL Expression evaluated 4 times on tap 4.1.2 release

2007-11-19 Thread carlos f
andyhot wrote: > > On the meantime, maybe the @Cached annotation can help you. > http://tacos.sourceforge.net/tacos4.1/tacos-annotations/index.html > It's in the 4.1.1-SNAPSHOT and it annotates a normal non-abstract method, > caching its result and returning it on further invocations. > Thanks

Re: How to initialize a session variable in a page render request?

2007-11-19 Thread lasitha
On Nov 20, 2007 4:54 AM, jeffrey ai <[EMAIL PROTECTED]> wrote: > > onActivate() solve the problem. I thought this method only get called for an > action request, not for a page render request. > Apparently, I am wrong. I think it should be documented at the following > "Page Lifecycle" guide. > htt

Re: T5 How to difine dynamic path for image

2007-11-19 Thread lasitha
On Nov 20, 2007 7:21 AM, Doublel <[EMAIL PROTECTED]> wrote: > Yes it works well.Thanks very much > ... > public void setWeatherImagePath(Asset weatherImagePath) { > this.weatherImagePath = weatherImagePath; > } > ... > public Asset getWeatherImagePath(){ > return this.assetS

Re: T5 How to difine dynamic path for image

2007-11-19 Thread Doublel
Yes it works well.Thanks very much complete code : @Inject private ComponentResources resource; @Inject private AssetSource assetSource; private Asset weatherImagePath; /** * @param weatherImagePath the weatherImagePath to set */ public void setWeatherImagePat

Re: T5: Two links to same event method

2007-11-19 Thread Howard Lewis Ship
I consider this a bit of a nice case. Define one method for the first link. Define a second method for the second link and just call the first link's method. It's a balance: an extra couple of lines of code for something that's pretty rare, vs. added complexity for this one situation. An option

Re: T5 How to get all page names?

2007-11-19 Thread Howard Lewis Ship
Sure add an issue. ... and a patch :-) Just curious: why do you need to list of all pages? On Nov 19, 2007 1:14 PM, Marcus <[EMAIL PROTECTED]> wrote: > Hi Howard, > > I agree with you, maybe if ComponentClassResolver can have a method > where we can get page names, just when we want? > > > Thank

Re: How to initialize a session variable in a page render request?

2007-11-19 Thread jeffrey ai
Thanks, Josh. onActivate() solve the problem. I thought this method only get called for an action request, not for a page render request. Apparently, I am wrong. I think it should be documented at the following "Page Lifecycle" guide. http://tapestry.apache.org/tapestry5/tapestry-core/guide/lifecy

[T5] Translator VS ValueEncoder

2007-11-19 Thread Kevin Menard
Is there much reason for Tapestry to have both? The interfaces are remarkably similar and even seem to be used in similar contexts. Anyway, just something I tripped up over when I found out that Select doesn't take a translator. -- Kevin Menard Servprise International, Inc. Remote reboot & powe

Re: T5: Decorating A Service In a Sub Module

2007-11-19 Thread Massimo Lusetti
On Nov 19, 2007 6:40 PM, David Kendall <[EMAIL PROTECTED]> wrote: > Is there anyone on this list who does have experience with using > decorators in a sub-module and can tell me what I am doing wrong - or > who can verify this is a bug in T5? I'm using decorators in a sub module, BTW i don't see

Re: T5 create a grid with columns dynamics?

2007-11-19 Thread Ezra Epstein
There is no requirement that there be a class. You can just create your own implementation of BeanModel and do whatever you choose. BeanModel is an interface. Cristian Gonzalo Gary <[EMAIL PROTECTED]> wrote: For each name in column needs an attribute of a class. I need to create a grid, with

Re: OGNL Expression evaluated 4 times on tap 4.1.2 release

2007-11-19 Thread andyhot
Yep, it is on purpose - but I think that Jesse has said that it's supposed to go away eventually... On the meantime, maybe the @Cached annotation can help you. http://tacos.sourceforge.net/tacos4.1/tacos-annotations/index.html It's in the 4.1.1-SNAPSHOT and it annotates a normal non-abstract met

Re: How to initialize a session variable in a page render request?

2007-11-19 Thread carlos f
jeffrey ai wrote: > > I am looking for the best way to initialize a session variable(@Persist) > in a page render request once, so I could access it in the next action > request. > Jeffrey, I am not sure about the particulars of your situation. If you are using tap 4.x, you might want to lo

Re: Using Alfresco from within Tapestry

2007-11-19 Thread Kaspar Fischer
Marcus, many thanks for your kind reply. Your link helped me to get started and I think I see the way. Unfortunately, I've run into a (Alfresco specific?) problem. But maybe one of you has run into a similar one and can help? The problem is this: Alfresco and my Tapestry webapp run as follo

Re: How to initialize a session variable in a page render request?

2007-11-19 Thread Josh Canfield
> > I am looking for the best way to initialize a session variable(@Persist) > in > a page render request once, so I could access it in the next action > request. > > I can't tell you why pageAttached doesn't work (haven't tried it) but you can use onActivate, or if it's for a form onPrepare. Josh

Re: T5 How to get all page names?

2007-11-19 Thread Marcus
Hi Howard, I agree with you, maybe if ComponentClassResolver can have a method where we can get page names, just when we want? Thanks, Marcus - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL P

Re: T5 How to get all page names?

2007-11-19 Thread Howard Lewis Ship
There isn't a programmatic way to do this currently, but it could be easily added. The service that knows about this, ComponentClassResolver, is public. I just made changes so that, on startup, all the available pages/components/mixins are output (i.e. the logical name to class name mapping). On

T5 How to get all page names?

2007-11-19 Thread Marcus
Hi, How to get all page names at application statup ? Thanks, Marcus - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]

Re: T5 create a grid with columns dynamics?

2007-11-19 Thread Cristian Gonzalo Gary
For each name in column needs an attribute of a class. I need to create a grid, with column names that are not associated with a class Vashon-Ez wrote: > > Use the 'model' attribute of the grid to specify a model for the rows. > Then in your backing Java class create the model - e.g.,

Re: OGNL Expression evaluated 4 times on tap 4.1.2 release

2007-11-19 Thread carlos f
carlos f wrote: > > This occurs when i am executing tests as part of my selenium integration > tests. > > . . . > > Is this a configuration/user error on my side, or is the framework still > purposefully evaluating these OGNL expressions 4 times? > I am still looking into this, but it appea

How to initialize a session variable in a page render request?

2007-11-19 Thread jeffrey ai
Hi Folks, I am looking for the best way to initialize a session variable(@Persist) in a page render request once, so I could access it in the next action request. I tried to put the logic into "pageAttached" method like below: @Persist private xxx myVar; @SuppressWa

Re: T5 create a grid with columns dynamics?

2007-11-19 Thread Ezra Epstein
Use the 'model' attribute of the grid to specify a model for the rows. Then in your backing Java class create the model - e.g., on the pageLoaded() event, or onActivate() or wherever. E.g., @Retain private BeanModel _model; void pageLoaded() { _model = _beanModelSource.cre

Re: [T5] tapestry-spring and WebApplicationContext

2007-11-19 Thread Ezra Epstein
And your web.xml file has: org.springframework.web.context.ContextLoaderListener And if the application context .xml files aren't in the standard place and named the standard way you've also included: contextConfigLocation ? Steph <[EMAIL PROTECTED]

Re: T5: Tapestry-Hibernate, do we have to save()?

2007-11-19 Thread Thiago H de Paula Figueiredo
On Mon, 19 Nov 2007 16:41:09 -0200, Ezra Epstein <[EMAIL PROTECTED]> wrote: I imagine that if you use Spring's declarative transactions on the service layer so that the read()/get() method does not start a read/write transaction but the save() method does then changing the object without

Re: T5: Tapestry-Hibernate, do we have to save()?

2007-11-19 Thread Thiago H de Paula Figueiredo
On Mon, 19 Nov 2007 16:34:46 -0200, lasitha <[EMAIL PROTECTED]> wrote: Let me describe the problem in a little more detail. Assuming a typical OSIV setup, consider the following sequence of events: 1. A form is submitted. 2. The entity that backs the form is retrieved from the db in onActivate

Re: T5: Tapestry-Hibernate, do we have to save()?

2007-11-19 Thread Ezra Epstein
I imagine that if you use Spring's declarative transactions on the service layer so that the read()/get() method does not start a read/write transaction but the save() method does then changing the object without calling "save()" should just work - you won't be in a read/write tx and so the chan

Re: T5 How to difine dynamic path for image

2007-11-19 Thread Josh Canfield
Injecting the asset as you've done doesn't make a lot of sense since the annotation @Path is a compile time construct. So what you are getting in your annotation is probably null, or whatever your default for weatherPath was. The advantage to using AssetResource is that you can look up assets at r

Re: T5: Tapestry-Hibernate, do we have to save()?

2007-11-19 Thread lasitha
On Nov 19, 2007 10:35 PM, Thiago H de Paula Figueiredo <[EMAIL PROTECTED]> wrote: > I havent't noticed this problem before. Until now, HiberTapestry opens a > transaction when a service method annotated with @Transactional is invoked > and commits it when the method finishes without exceptions. Oth

Re: OGNL Expression evaluated 4 times on tap 4.1.2 release

2007-11-19 Thread Kalle Korhonen
Yes, I get this too on 4.1.3. Kalle On 11/19/07, carlos f <[EMAIL PROTECTED]> wrote: > > > BUMP . . . just trying to make sure this didn't get lost in all the T5 > messages over the weekend . > > Does anyone know what I can do to eliminate the duplicate calls? > > Thanks in advance. > > Carlos >

RE: T5: Decorating A Service In a Sub Module

2007-11-19 Thread David Kendall
> I haven't used decoration before, but I'm guessing that even with > decorators you must still provide a service id. Chris: Thanks for your reply. As I understand decorators - the service id is the same as the service it is decorating. This is because a decorator is a wrapper around a service a

Re: T5: testing T5

2007-11-19 Thread Chris Lewis
This worked. For the record I was also pointed to this url that briefly covers maven2/surefire/testng usage: http://mohanrajk.wordpress.com/2007/07/21/maven-2-testng-and-surefire-plugin/ 'TomTom' pointed this out to me in IRC (#tapestry irc.freenode.net) - ;-) Thanks for the input Joel Wiegma

Re: T5.0.6: Table with input fields inside a form?

2007-11-19 Thread CarstenM
Hi Jeffrey, thanks for your help. Found a quite similar solution at the same time of your suggestion. :-) Carsten jeffrey ai wrote: > > I wouldn't suggest you to use Grid component. The easiest way is to use > directly with some tapestry components. Your template will be like > below: > ===

Re: [T4] Thanks for updates

2007-11-19 Thread Kalle Korhonen
And not to mention T4 being actively maintained. The issue as I see it is that while T5 brings a lot on the table in terms of ease-of-use and shielding you from your own stupidity, T4 matches and surpasses it in power and expressiveness if you just get past the learning curve and figure out the bes

Re: T5: Tapestry-Hibernate, do we have to save()?

2007-11-19 Thread Thiago H de Paula Figueiredo
On Mon, 19 Nov 2007 14:19:28 -0200, lasitha <[EMAIL PROTECTED]> wrote: On Nov 19, 2007 5:42 PM, Thiago H de Paula Figueiredo <[EMAIL PROTECTED]> wrote: Hi, Lasitha! (By the way, where are you from?) Oh, the beautiful town of kandy, sri lanka :) I'm from the not so beautiful city of Belo H

Re: T5.0.6: Table with input fields inside a form?

2007-11-19 Thread jeffrey ai
I wouldn't suggest you to use Grid component. The easiest way is to use directly with some tapestry components. Your template will be like below: == ... ... ${your_value.label} The posted data in your action reques

Re: T5.0.6: Table with input fields inside a form?

2007-11-19 Thread CarstenM
Alright, found a possibilty even without using Grid component. Using a table and a loop.should be ok for this task. CarstenM wrote: > > Hello, > > I'd like to create a table with input fields (checkbox, textfield) inside > a form. > Does someone have an example? > > Help would be ver

Re: How to Intergrate GWT into Tapestry pages Article by Geoff Longman

2007-11-19 Thread mad7777
Hi, I'd just like to revive this thread. Has anybody had any good/bad experiences integrating Tapestry and GWT? I am especially interested in T5, as we are considering using this mix for an enterprise application. Thanks for your input, Marc Jessek wrote: > > Awesome! Thanks for the link. I

Re: T5: Tapestry-Hibernate, do we have to save()?

2007-11-19 Thread lasitha
On Nov 19, 2007 5:42 PM, Thiago H de Paula Figueiredo <[EMAIL PROTECTED]> wrote: > > Hi, Lasitha! (By the way, where are you from?) Oh, the beautiful town of kandy, sri lanka :) > I'm planning to release the sources until this weekend. Great, thanks! Will be looking forward to it. In the meantim

Re: Feedback wanted on IoC documentation

2007-11-19 Thread Howard Lewis Ship
That's what service builder methods are for. They're the shim for services that don't have a proper constructor, or that have more complicated initialization logic. On Nov 19, 2007 4:16 AM, Thiago H de Paula Figueiredo <[EMAIL PROTECTED]> wrote: > On Sat, 17 Nov 2007 14:41:16 -0200, Howard Lewis

Re: [T4] Thanks for updates

2007-11-19 Thread Martino Piccinato
Stuck? :-) We use it, we invested in it and we have important projects to mantain with it. Not to mention that there is still no ajax support in T5. So yes, thanks guys for supporting it. On Nov 19, 2007 3:51 PM, Kevin Menard <[EMAIL PROTECTED]> wrote: > With all the recent traffic about T5 on

T5.0.6: Table with input fields inside a form?

2007-11-19 Thread CarstenM
Hello, I'd like to create a table with input fields (checkbox, textfield) inside a form. Does someone have an example? Help would be very nice. Need a solution for it to finish first version of my application. (Asked for that in other threads already, but nobody answered.. probably more imp

[T5] Configuring error pages in web.xml

2007-11-19 Thread Thiago H de Paula Figueiredo
Hi, everybody! I'm trying to create a 404 page using Tapestry 5. So, in my web.xml, I have 404 /error/404 If I access the error page directly, everything runs fine. But, if I enter a wrong URL, the page hangs. I've put breakpoints in Error's onActivate(Object[] objects), b

Re: Authentication Tapestry 5

2007-11-19 Thread Peter Stavrinides
Hi Chris Yes, this is kind of what I am looking for, I will give it a go... Thanks Peter Chris Lewis wrote: Hello Peter, It sounds like by 'filter' you mean a servlet filter and not a Tapestry filter. Your requirements sound a tad exotic to me, but these wikis should get you on the right tr

[T4] Thanks for updates

2007-11-19 Thread Kevin Menard
With all the recent traffic about T5 on the list, I just wanted to thank the folks still working on T4. Though the lists may not show it, I'm sure there's a lot of us that are "stuck" with T4 for at least some projects and it's nice to see activity still happening in this space. I look forward to

Re: OGNL Expression evaluated 4 times on tap 4.1.2 release

2007-11-19 Thread carlos f
BUMP . . . just trying to make sure this didn't get lost in all the T5 messages over the weekend . Does anyone know what I can do to eliminate the duplicate calls? Thanks in advance. Carlos -- View this message in context: http://www.nabble.com/OGNL-Expression-evaluated-4-times-on-tap-4.1.2-r

Re: T5: expression language

2007-11-19 Thread Peter Stavrinides
I think for T5 as default: Tapestry's binding language might be extended to do some simple evaluation at best, and nothing more! the simpler the better in my view, isn't this the general idea of using components and moving away from embedded scripting? I think, in general, support for pul

Equivalent of Table in T5 (for a matrix of checkboxes) ?

2007-11-19 Thread Alexander Lamb
Hello, In T4 I have a table with a dynamic number of rows and columns. The cells are checkboxes. source="ognl:features" columns="ognl:columns" pageSize="100">

Re: [T5] Big problem with

2007-11-19 Thread andyhot
Peter Stavrinides wrote: One of the most criticised areas of T4 was the 'uglyness' of urls and the clumsiness of page navigation, as well as creating subfolders for pages etc it was a horrible approach, if you ask me, to issues that should have been seamless. Hi, is it possible to elaborat

RE: T5: testing T5

2007-11-19 Thread Joel Wiegman
FWIW, I haven't had any problems with TestNG, but I've been using a suite.xml. I would recommend trying that because it gives you some nice flexibility (like parameterizing your tests, grouping your tests, etc.). Documentation for using a suite XML in the POM can be found here: http://maven.apach

Re: [T5] tapestry-spring and WebApplicationContext

2007-11-19 Thread Steph
I've tried this but my WebApplicationContext is null ... Stephane SergeEby a écrit : > Hi, > > Just import and inject the WAC in your page: > > import org.springframework.web.context.WebApplicationContext; > > class Foo { > > ... > @Inject > private WebApplicationContext wac; > > ... > } > >

Re: [T5] Big problem with

2007-11-19 Thread Peter Stavrinides
>BTW, this page navigation stuff is something I still have to examine a bit since it is quite a different from T4 design. The T5 way seems much more >complicated at first glance, but I am sure it just looks that way because it tries to solve back-button problem which T4 didn't try to tackle e

Re: T5 How to difine dynamic path for image

2007-11-19 Thread Chris Lewis
I've not seen AssetResource - what is the advantage to using it like this as opposed simply to injecting the asset? lasitha wrote: On Nov 19, 2007 2:37 PM, Doublel <[EMAIL PROTECTED]> wrote: public void onActivate(String id){ if (lw.hnSunny.equals(bc.getLogWeather())){ t

Re: Authentication Tapestry 5

2007-11-19 Thread Chris Lewis
Hello Peter, It sounds like by 'filter' you mean a servlet filter and not a Tapestry filter. Your requirements sound a tad exotic to me, but these wikis should get you on the right track: http://wiki.apache.org/tapestry/Tapestry5HowToCreateADispatcher http://wiki.apache.org/tapestry/Tapestry5

Re: T5 create a grid with columns dynamics?

2007-11-19 Thread Cristian Gonzalo Gary
i need to show many column , every column is asociated to an atribute from objects inside a list. and the value of this columns is from another source list. (i hope you understand better my problem ) Thanks , Gracias. -- View this message in context: http://www.nabble.com/T5-create

Re: Problem with 5.0.7-SNAPSHOT

2007-11-19 Thread Alexander Lamb
It worked like that, thanks! Le 16 nov. 07 à 20:25, Sven Homburg a écrit : sometimes, after updating from repository, i must remove the target/classes directory manualy from modules before compiling the library sources best regards homburg Softwaretechnik S.Homburg Seevetal / GERMANY A

Authentication Tapestry 5

2007-11-19 Thread Peter Stavrinides
Hi all My question is more of a best practice related question, I want to use a filter to extract my authentication code from the rest of the application logic, so I can avoid adding this logic to pages. In addition, one of my authentication requirements involves some integration with third p

Re: Feedback wanted on IoC documentation

2007-11-19 Thread Thiago H de Paula Figueiredo
On Sat, 17 Nov 2007 14:41:16 -0200, Howard Lewis Ship <[EMAIL PROTECTED]> wrote: On Nov 16, 2007 10:39 PM, Patrick Moore <[EMAIL PROTECTED]> wrote: I disagree with philosophy of forcing people to have the services only injected via constructors because: 1. it results in a monster construc

Re: T5: Tapestry-Hibernate, do we have to save()?

2007-11-19 Thread Thiago H de Paula Figueiredo
On Mon, 19 Nov 2007 07:17:32 -0200, lasitha <[EMAIL PROTECTED]> wrote: On Oct 31, 2007, Thiago H de Paula Figueiredo <[EMAIL PROTECTED]> wrote: Thiago, any chance you'll be releasing the source soon? Hi, Lasitha! (By the way, where are you from?) I'm planning to release the sources until t

[t5] Classloader problem

2007-11-19 Thread Joachim Van der Auwera (PROGS bvba)
When trying to deploy an application on JBoss which also references my EJB3 beans, I get a "no classloader found for" exception in the when passing a context from one page to the next. This seems to be caused by the use of Class.forName in ComponentEventImpl. Replacing line 82 Class desired

T5: Two links to same event method

2007-11-19 Thread Tim Sawyer
Hi Folks, I think I'm missing something obvious here, but would appreciate a shove in the right direction. I have a page with two links on it, and I want both to run the same listener method on the page class. So I want to have ${useCaseBaseline.name} at two points in my page (actually both

Re: T5: grid empty source

2007-11-19 Thread Filip S. Adamsen
Try empty block instead. -Filip Angelo Chen skrev: Hi, How to use empty in the grid? following does not work: empty block - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [E

Re: T5 How to difine dynamic path for image

2007-11-19 Thread lasitha
On Nov 19, 2007 2:37 PM, Doublel <[EMAIL PROTECTED]> wrote: > public void onActivate(String id){ > if (lw.hnSunny.equals(bc.getLogWeather())){ > this.weatherPath="logweath.gif"; > ... > @Inject > @Path("context:/images/"+ weatherPath ) > private Asset trackback;

Re: T5: Tapestry-Hibernate, do we have to save()?

2007-11-19 Thread lasitha
On Oct 31, 2007, Thiago H de Paula Figueiredo <[EMAIL PROTECTED]> wrote: > On Wed, 31 Oct 2007, Ognen Ivanovski <[EMAIL PROTECTED]> wrote: > > > tapestry-ioc allows you to write interceptors on service method calls. > > I've already done that: http://tapestry-mine.sourceforge.net/hibertapestry/ > >

Re: Setter injection support and proper object construction in Tapestry IoC

2007-11-19 Thread Christian Edward Gruber
I've usually found my race conditions, or stupid multi-threading mistakes with 2 processors just fine. I'm just trying to wrack my brain to find one that would be solved with 3+ that wouldn't be found with 2. Hmmm... Christian. On 19-Nov-07, at 12:49 AM, Howard Lewis Ship wrote: It's

T5 How to difine dynamic path for image

2007-11-19 Thread Doublel
Hi: I have a problem I get a value from DB into private String weatherPath=""; then the code is : public void onActivate(String id){ if (lw.hnSunny.equals(bc.getLogWeather())){ this.weatherPath="logweath.gif"; } } @Inject @Path("context:/images/"+ we

T5 How to difine dynamic path for image

2007-11-19 Thread Doublel
-- 得与失都是生活