RE: struts-faces bug?

2004-03-10 Thread Oliver
Hi,

I just read:
http://forum.java.sun.com/thread.jsp?forum=427thread=500294tstart=30trang
e=15
New version solved problem!

greetings
Oliver

 -Ursprüngliche Nachricht-
 Von: Oliver [mailto:[EMAIL PROTECTED] 
 Gesendet: Mittwoch, 10. März 2004 19:42
 An: [EMAIL PROTECTED]
 Betreff: struts-faces bug?
 
 Hi,
 
 After spending hours with error-searching and reading other 
 forums and mailinglists, I am at a loss.
 I think there is an error in the struts-faces library.
 I am using Tomcat 5.0.19, JSF1.0 reference implementation 
 from Sun and struts-faces.jar from 6.3.04. The JSF examples 
 work trouble free, but as soon as I want to use the 
 struts-faces.jar with my struts app. I get the following Exception:
 
 2004-03-10 19:22:32 StandardContext[/myApp]Error configuring 
 application listener of class 
 org.apache.struts.faces.taglib.LifecycleListener
 java.lang.IncompatibleClassChangeError: Implementing class
   at java.lang.ClassLoader.defineClass0(Native Method)
   at java.lang.ClassLoader.defineClass(ClassLoader.java:537)
   at
 java.security.SecureClassLoader.defineClass(SecureClassLoader.
 java:123)
   at
 org.apache.catalina.loader.WebappClassLoader.findClassInternal
 (WebappClassLo
 ader.java:1677)
   at
 org.apache.catalina.loader.WebappClassLoader.findClass(WebappC
 lassLoader.jav
 a:900)
   at
 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappC
 lassLoader.jav
 a:1350)
   at
 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappC
 lassLoader.jav
 a:1230)
   at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
   at java.lang.Class.getDeclaredConstructors0(Native Method)
   at 
 java.lang.Class.privateGetDeclaredConstructors(Class.java:1610)
   at java.lang.Class.getConstructor0(Class.java:1922)
   at java.lang.Class.newInstance0(Class.java:278)
   at java.lang.Class.newInstance(Class.java:261)
   at
 org.apache.catalina.core.StandardContext.listenerStart(Standar
 dContext.java:
 3722)
   at
 org.apache.catalina.core.StandardContext.start(StandardContext
 .java:4270)
   at
 org.apache.catalina.core.ContainerBase.addChildInternal(Contai
 nerBase.java:8
 66)
   at
 org.apache.catalina.core.ContainerBase.addChild(ContainerBase.
 java:850)
   at
 org.apache.catalina.core.StandardHost.addChild(StandardHost.java:638)
   at
 org.apache.catalina.core.StandardHostDeployer.install(Standard
 HostDeployer.j
 ava:320)
   at
 org.apache.catalina.core.StandardHost.install(StandardHost.java:875)
   at
 org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:657)
   at
 org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:476)
   at
 org.apache.catalina.startup.HostConfig.start(HostConfig.java:1008)
   at
 org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConf
 ig.java:394)
   at
 org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(L
 ifecycleSuppor
 t.java:166)
   at
 org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1134)
   at
 org.apache.catalina.core.StandardHost.start(StandardHost.java:832)
   at
 org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1126)
   at
 org.apache.catalina.core.StandardEngine.start(StandardEngine.java:521)
   at
 org.apache.catalina.core.StandardService.start(StandardService
 .java:519)
   at
 org.apache.catalina.core.StandardServer.start(StandardServer.j
 ava:2345)
   at org.apache.catalina.startup.Catalina.start(Catalina.java:594)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at
 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccess
 orImpl.java:39
 )
   at
 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMeth
 odAccessorImpl
 .java:25)
   at java.lang.reflect.Method.invoke(Method.java:324)
   at 
 org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:297)
   at 
 org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:398)
 
 Thanks for your proposals and help
 Greetings
 Oliver
 
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: struts-faces-integration-lib

2004-03-04 Thread Craig R. McClanahan
Quoting Matthias Wessendorf [EMAIL PROTECTED]:

 Hi,
 
 i noticed, that JSF became final.
 Now i asked myself, when the struts-faces-lib will be shipped? that one,
 that works with 1.0_final... ;-)
 

Well, it has to work first :-).  I'm finishing up the debugging before I commit
a version that works with the 1.0 final release (without Tiles ... the next
step will be catching up the Tiles integration as well).

My personal goal is to have a production quality version of this code released
before JavaOne.  In order for that to happen, it will need lots of testing
across a variety of existing applications, so we'll probably need some 'early
access' type snapshots in the interim.

 Is main focus now working on struts_1.2?
 or is the integration-lib independent of struts-1.2
 because it is in contrib-folder!
 

So far, I've been doing the integration work against a stock Struts 1.1 install,
so it will be backwards compatible.  I'll test, of course, with Struts 1.2 as
well before we actually release anything.


 Thanks for answer! :-)
 
 Cheers!
 --
 Matthias Weßendorf
 Aechterhoek 18
 D-48282 Emsdetten
 Email: mailto:[EMAIL PROTECTED]
 URL: http://www.wessendorf.net
 

Craig


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: struts-faces Roadmap

2003-11-25 Thread Craig R. McClanahan
Quoting Nadeem Bitar [EMAIL PROTECTED]:

 Is there a roadmap for the struts and jsf integration library? I am
 particularly interested in an update that would support tiles. I already
 tried the modifications suggested in the developerworks article
 (http://www-106.ibm.com/developerworks/library/j-integrate)
 with partial success, but I would prefer that it was supported directly
 in struts-faces.
 thanks in advance,
 nadeem
 

The plan is definitely to keep struts-faces up to date with the upcoming beta
and final releases of JavaServer Faces.  Ensuring that Tiles support works is
very high on my agenda; it's a matter of having sufficient time to integrate
and test the solution.

Craig


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: struts-faces

2003-09-18 Thread Ted Husted
Likewise, if anyone really wanted throwaway, non-threadsafe Actions, 
there's a nice technique that Maverick uses. A regular singleton Action 
is used as a wrapper. When execute is called, the wrapper instantiates a 
new instance of the desired type and returns the outcome of its execute. 
 But the ActionForm technique Greg describes would be an even better 
way to create throwaway Actions.

Gregory Seidman wrote:
On Wed, Sep 17, 2003 at 01:14:27PM +0200, Adam Hardy wrote:
} I remember a while ago in one of these architecture- theme emails you 
} discussed the OO nature of struts  it had been said that the 
} action-form class and the action class broke the OO encapsulation 
} principle, by having data in one and functionality in another. You said 
} if you were going to design struts again, you would probably address this.
[...]

This is a quibble. If you want to put your functionality into your
ActionForm class, go ahead. Create an abstract ActionForm subclass that has
a takeAction() pure virtual method in it (with appropriate arguments).
Create an Action class which does nothing more than cast to your ActionForm
subclass and call takeAction(). There you go, functionality in the same
class that holds the data.
} Adam
--Greg
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

--
Ted Husted,
  Junit in Action  - http://www.manning.com/massol/,
  Struts in Action - http://husted.com/struts/book.html,
  JSP Site Design  - http://www.amazon.com/exec/obidos/ISBN=1861005512.


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: struts-faces

2003-09-18 Thread Ted Husted
Craig R. McClanahan wrote:
 // Return an Action for processing a logon
 public Action getLogon() {
   return new Action() {
 public String invoke() {
   return logon();
 }
   }
 }

Very cool technique =:)

But this has to be the coolest trick yet:

 // Add an error message
 FacesContext.getCurrentInstance().addMessage(...);
Hey, why bother passing around a context when you can get the thread to 
do it? Quite fancy =:)

http://java.sun.com/webservices/docs/1.2/api/javax/faces/context/FacesContext.html

-Ted.



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


RE: struts-faces

2003-09-18 Thread Andrew Hill
Of course theres an even simpler way to get fresh actions each time - just a
few lines change in your request processor. Have it return a new instance
each time and dont bother with caching it...

-Original Message-
From: Ted Husted [mailto:[EMAIL PROTECTED]
Sent: Thursday, 18 September 2003 18:57
To: Struts Users Mailing List
Subject: Re: struts-faces


Likewise, if anyone really wanted throwaway, non-threadsafe Actions,
there's a nice technique that Maverick uses. A regular singleton Action
is used as a wrapper. When execute is called, the wrapper instantiates a
new instance of the desired type and returns the outcome of its execute.
  But the ActionForm technique Greg describes would be an even better
way to create throwaway Actions.

Gregory Seidman wrote:
 On Wed, Sep 17, 2003 at 01:14:27PM +0200, Adam Hardy wrote:
 } I remember a while ago in one of these architecture- theme emails you
 } discussed the OO nature of struts  it had been said that the
 } action-form class and the action class broke the OO encapsulation
 } principle, by having data in one and functionality in another. You said
 } if you were going to design struts again, you would probably address
this.
 [...]

 This is a quibble. If you want to put your functionality into your
 ActionForm class, go ahead. Create an abstract ActionForm subclass that
has
 a takeAction() pure virtual method in it (with appropriate arguments).
 Create an Action class which does nothing more than cast to your
ActionForm
 subclass and call takeAction(). There you go, functionality in the same
 class that holds the data.

 } Adam
 --Greg


 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]



--
Ted Husted,
   Junit in Action  - http://www.manning.com/massol/,
   Struts in Action - http://husted.com/struts/book.html,
   JSP Site Design  - http://www.amazon.com/exec/obidos/ISBN=1861005512.



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: struts-faces

2003-09-18 Thread Craig R. McClanahan
On Thu, 18 Sep 2003, Ted Husted wrote:

 Date: Thu, 18 Sep 2003 07:05:44 -0400
 From: Ted Husted [EMAIL PROTECTED]
 Reply-To: Struts Users Mailing List [EMAIL PROTECTED]
 To: Struts Users Mailing List [EMAIL PROTECTED]
 Subject: Re: struts-faces

 Craig R. McClanahan wrote:
   // Return an Action for processing a logon
   public Action getLogon() {
 return new Action() {
   public String invoke() {
 return logon();
   }
 }
   }
  

 Very cool technique =:)


Anonymous inner classes have some mind-bending capabilities :-).

 But this has to be the coolest trick yet:

   // Add an error message
   FacesContext.getCurrentInstance().addMessage(...);

 Hey, why bother passing around a context when you can get the thread to
 do it? Quite fancy =:)

It's definitely cute, but there's a tradeoff.  The FacesContext
implementation has to use a ThreadLocal variable (or something equivalent)
in order to keep trace of the current FacesContext instance for each
webapp, so there's a (small but real) performance difference between
calling getCurrentInstance() and passing the current context on the stack.
In general, we have tried to pass the context when it was easily
available, but not stressed over using getCurrentInstance() in other
cases.

One might think about applying this design pattern to something like
commons-chain as well (to avoid passing on the Context object).  That
would work if there was only one chain being processed per thread, which
may or may not be practical (it is for JavaServer Faces because there's
only one FacesContext instance per request processing thread).


 http://java.sun.com/webservices/docs/1.2/api/javax/faces/context/FacesContext.html

 -Ted.

Craig

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: struts-faces

2003-09-17 Thread Adam Hardy
Hi Craig,
I remember a while ago in one of these architecture- theme emails you 
discussed the OO nature of struts  it had been said that the 
action-form class and the action class broke the OO encapsulation 
principle, by having data in one and functionality in another. You said 
if you were going to design struts again, you would probably address this.

Does JSFaces bring these two closer together? Or is this an area where 
Faces is not involved? I see you say that in a combination of struts  
Faces, you would still use actions and forms.

The reason I ask is that I just had a hard time redesigning a page 
because my initial design failed. The page allows an edit of one parent 
object, while showing a list of its child objects with 
move-to-new-parent / delete controls. I got in a mess initially over 
whether to use the parent or child's form and action for the child 
operations.

Fortunately I solved it nicely by nesting the child objects in the 
parent form, and passing the whole lot to the parent's model, which then 
worked out if it needed to call the child's model for any operations.

Adam

On 09/16/2003 09:30 PM Craig R. McClanahan wrote:
On Tue, 16 Sep 2003, Sasha Borodin wrote:


Date: Tue, 16 Sep 2003 12:35:22 -0500
From: Sasha Borodin [EMAIL PROTECTED]
Reply-To: Struts Users Mailing List [EMAIL PROTECTED]
To: Struts Users Mailing List [EMAIL PROTECTED]
Subject: Re: struts-faces
Thanks Craig.


You can, but the integration library lets you use Struts Actions on the
back end, creates form beans automatically, and so on.
Reading through Sun's Web Services Tutorial section on JSF, things are
starting to come into focus:  JSF provides functionality that overlaps that
of Struts (my misconception was that JSF was strictly a UI component tag
library).


Yep ... there's quite a bit of overlap, and JavaServer Faces is FAR more
than a component tag library.

.: Anyone know of a resource that summarizes/contrasts solutions provided by
both frameworks?


I'll throw in a few short comments below, but caution you that this is
based on the EA4 release of JavaServer Faces.  Things are still evolving
rapidly.  (My comments ought to have at least a *little* relevance,
because I'm both the original author of Struts and the co-spec-lead for
JavaServer Faces :-).

i.e.:
   -UI Components


Struts doesn't really have any notion of components at all (the closest
thing is properties of a form bean), while JavaServer Faces has a fairly
rich component model that is accessible at both the Java and JSP levels
(JSP is not required), supports a separate rendering model (so you can
render something like a select one control as either a set of radio
buttons or a select element with one simple change) and is not tied to
HTML -- although the default render kit included will be HTML specific.
Out of the box, you'll get complex components like a grid and an editable
table, and there are already demonstration components for things like
trees and menus that (in a Struts world) require additional add-on tag
libraries.
For people who have existing Struts expertise and/or applications, this is
the key value add of integrating JavaServer Faces -- you can use the fancy
UI component model without having to change your back-end form beans or
actions.

   -controller components


This is where Struts shines, and I assume you're familiar with that.
JavaServer Faces uses a somewhat different abstraction for navigation, and
defers the decision of what page to display next to a NavigationHandler
that is configured with a set of rules -- the next page is determined by
matching rules for:
* The page that is currently being displayed
* Which Action was invoked (for example, you can have
  multiple submit buttons on the page that do different things)
* Which logical outcome was returned by the Action that
  was invoked -- sort of like how Struts actions return an
  ActionForward.
JavaServer Faces is more flexible in how you organize your processing
logic -- you can maintain a Struts-like model of separate form beans and
action classes, or you can combine them together (somewhat like how
code-behind pages work in ASP.Net).
Struts has a couple of framework features (Tiles and the Validator
Framework) that are beyond the current scope of JavaServer Faces -- but
one advantage of the integration library is that you'll be able to use
these sorts of technologies together.

   -model components


Being presentation frameworks, both technologies are mostly focused on the
view and controller.  The important part becomes how the presentation tier
and model tier object communicate values:
* With Struts, you can use property expressions to navigate
  down a bean hierarchy -- something like:
bean:write name=customer property=address.city/

* With JavaServer Faces, this is done with value reference
  expressions that use the same syntax as JSTL EL expressions.
  The equivalent tag to output a bean property would be:
h:output_text valueRef

Re: struts-faces

2003-09-17 Thread Gregory Seidman
On Wed, Sep 17, 2003 at 01:14:27PM +0200, Adam Hardy wrote:
} I remember a while ago in one of these architecture- theme emails you 
} discussed the OO nature of struts  it had been said that the 
} action-form class and the action class broke the OO encapsulation 
} principle, by having data in one and functionality in another. You said 
} if you were going to design struts again, you would probably address this.
[...]

This is a quibble. If you want to put your functionality into your
ActionForm class, go ahead. Create an abstract ActionForm subclass that has
a takeAction() pure virtual method in it (with appropriate arguments).
Create an Action class which does nothing more than cast to your ActionForm
subclass and call takeAction(). There you go, functionality in the same
class that holds the data.

} Adam
--Greg


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: struts-faces

2003-09-17 Thread Craig R. McClanahan
On Wed, 17 Sep 2003, Adam Hardy wrote:

 Date: Wed, 17 Sep 2003 13:14:27 +0200
 From: Adam Hardy [EMAIL PROTECTED]
 Reply-To: Struts Users Mailing List [EMAIL PROTECTED]
 To: Struts Users Mailing List [EMAIL PROTECTED]
 Subject: Re: struts-faces

 Hi Craig,
 I remember a while ago in one of these architecture- theme emails you
 discussed the OO nature of struts  it had been said that the
 action-form class and the action class broke the OO encapsulation
 principle, by having data in one and functionality in another. You said
 if you were going to design struts again, you would probably address this.

 Does JSFaces bring these two closer together? Or is this an area where
 Faces is not involved? I see you say that in a combination of struts 
 Faces, you would still use actions and forms.


JavaServer Faces is designed to give you options to organize things either
way.  Here's one example of a logon form (and associated back-end logic)
that combines the Struts notions of ActionForm and Action into a single
class (corresponds to the syntax in the EA4 release):

JSP PAGE (/logon.jsp):
=

  ...
  h:form
h:output_errors/
h:panel_grid columns=2
  h:output_text value=Username:/
  h:input_text id=username valueRef=logonForm.username/
  h:output_text value=Password:/
  h:input_secret id=password valueRef=logonForm.password/
  h:command_button label=Log On type=submit
  actionRef=logonForm.logon/
  h:command_button label=Reset type=reset/
/h:panel_grid
  /h:form
  ...

FACES CONFIGURATION FILE (faces-config.xml):
===

  ...
  managed-bean
managed-bean-namelogonForm/managed-bean-name
managed-bean-classmypackage.MyLogonForm/managed-bean-class
managed-bean-scoperequest/managed-bean-scope
  /managed-bean
  ...
  navigation-rule
from-tree-id/logon.jsp/from-tree-id
navigation-case
  from-outcomesuccess/from-outcome
  to-tree-id/mainmenu.jsp/to-tree-id
/navigation-case
  /navigation-rule
  ...

BACKING CLASS:
=

  package mypackage;
  public class MyLogonForm { // No required base class or interface

// Property for username field
private String username;
public String getUsername() { return username; }
public void setUsername(String username) { this.username = username; }

// Property for password field
private String password;
public String getPassword() { return password; }
public void setPassword(String password) { this.password = password; }

// Return an Action for processing a logon
public Action getLogon() {
  return new Action() {
public String invoke() {
  return logon();
}
  }
}

// The actual logon processing logic
private String logon() {
  DAO dao = ...; // Data Access Object for user database
  User user = dao.findUser(this.username);
  if ((user != null)  password.equals(user.getPassword())) {
... record successful logon ...
// Return logical outcome denoting success
return (success);
  } else {
// Add an error message
FacesContext.getCurrentInstance().addMessage(...);
// Return logical outcome denoting redisplay this page
return (null);
  }
}

  }

In this scenario, you can see that the form field values are stored in the
same bean as the processing logic.  Therefore, the processing logic can
just use the field values directly (they are in the instance variables).
However, it's only in the same class because the page author used
logonForm at the beginning of the valueRef and actionRef expressions --
they could just as easily have been stored in separate files.

A couple of things not real obvious from this simple example, but
interesting nevertheless:

* The managed-bean declaration causes a new instance of the specified
  class to be created in (in this case) request scope, if it is not
  there already, similar to the way that Struts creates form beans for
  you as needed.  However, JavaServer Faces generalizes this to happen
  automatically whenever it evaluates a reference expression and the
  first element does not identify an existing attribute in some scope.
  This can be very handy for instantiating service or processor
  objects whose precise characteristics are defined in the configuration
  file, rather than being coded in the page.

* JavaServer Faces uses logical outcomes to manage navigation, similar
  to the way that Struts uses the returned ActionForward for this.
  The returned value is matched against a set of navigation rules that
  choose the next page to be displayed based on three criteria:
  - What page am I currently displaying?  (Wildcard rules are allowed)
  - What action was performed? (You can have more than one submit button)
  - What logical outcome is returned?
  If no rule matches, the current page is redisplayed.  I've adopted
  the convention

Re: struts-faces

2003-09-16 Thread Craig R. McClanahan
On Tue, 16 Sep 2003, Sasha Borodin wrote:

 Date: Tue, 16 Sep 2003 11:30:40 -0500
 From: Sasha Borodin [EMAIL PROTECTED]
 Reply-To: Struts Users Mailing List [EMAIL PROTECTED]
 To: Struts Users Mailing List [EMAIL PROTECTED]
 Subject: struts-faces

 Can someone tell me why I'd need a struts integration version of the JSF
 implementation?  Why can't one just add the RI JAR files, TLD documents,
 config files and just starting using the tags?


You can, but the integration library lets you use Struts Actions on the
back end, creates form beans automatically, and so on.

 Thanks,

 -Sasha


Craig

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: struts-faces

2003-09-16 Thread Sasha Borodin
Thanks Craig.

 You can, but the integration library lets you use Struts Actions on the
 back end, creates form beans automatically, and so on.

Reading through Sun's Web Services Tutorial section on JSF, things are
starting to come into focus:  JSF provides functionality that overlaps that
of Struts (my misconception was that JSF was strictly a UI component tag
library).

.: Anyone know of a resource that summarizes/contrasts solutions provided by
both frameworks?

i.e.:
-UI Components
-controller components
-model components
-Page Flow
-etc.

Thanks,

-Sasha


 From: Craig R. McClanahan [EMAIL PROTECTED]
 Reply-To: Struts Users Mailing List [EMAIL PROTECTED]
 Date: Tue, 16 Sep 2003 10:16:22 -0700 (PDT)
 To: Struts Users Mailing List [EMAIL PROTECTED]
 Subject: Re: struts-faces
 
 On Tue, 16 Sep 2003, Sasha Borodin wrote:
 
 Date: Tue, 16 Sep 2003 11:30:40 -0500
 From: Sasha Borodin [EMAIL PROTECTED]
 Reply-To: Struts Users Mailing List [EMAIL PROTECTED]
 To: Struts Users Mailing List [EMAIL PROTECTED]
 Subject: struts-faces
 
 Can someone tell me why I'd need a struts integration version of the JSF
 implementation?  Why can't one just add the RI JAR files, TLD documents,
 config files and just starting using the tags?
 
 
 You can, but the integration library lets you use Struts Actions on the
 back end, creates form beans automatically, and so on.
 
 Thanks,
 
 -Sasha
 
 
 Craig
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: struts-faces

2003-09-16 Thread James Holmes
Hi Sasha,

I don't have a specific resource in mind for you to look at, but I have
compiled the most comprehensive listing of Java Server Faces resources
on my website.

http://www.jamesholmes.com/JavaServerFaces/

Hope that helps,

-James

-Original Message-
From: Sasha Borodin [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, September 16, 2003 12:35 PM
To: Struts Users Mailing List
Subject: Re: struts-faces

Thanks Craig.

 You can, but the integration library lets you use Struts Actions on
the
 back end, creates form beans automatically, and so on.

Reading through Sun's Web Services Tutorial section on JSF, things are
starting to come into focus:  JSF provides functionality that overlaps
that
of Struts (my misconception was that JSF was strictly a UI component tag
library).

.: Anyone know of a resource that summarizes/contrasts solutions
provided by
both frameworks?

i.e.:
-UI Components
-controller components
-model components
-Page Flow
-etc.

Thanks,

-Sasha


 From: Craig R. McClanahan [EMAIL PROTECTED]
 Reply-To: Struts Users Mailing List [EMAIL PROTECTED]
 Date: Tue, 16 Sep 2003 10:16:22 -0700 (PDT)
 To: Struts Users Mailing List [EMAIL PROTECTED]
 Subject: Re: struts-faces
 
 On Tue, 16 Sep 2003, Sasha Borodin wrote:
 
 Date: Tue, 16 Sep 2003 11:30:40 -0500
 From: Sasha Borodin [EMAIL PROTECTED]
 Reply-To: Struts Users Mailing List [EMAIL PROTECTED]
 To: Struts Users Mailing List [EMAIL PROTECTED]
 Subject: struts-faces
 
 Can someone tell me why I'd need a struts integration version of
the JSF
 implementation?  Why can't one just add the RI JAR files, TLD
documents,
 config files and just starting using the tags?
 
 
 You can, but the integration library lets you use Struts Actions on
the
 back end, creates form beans automatically, and so on.
 
 Thanks,
 
 -Sasha
 
 
 Craig
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: struts-faces

2003-09-16 Thread Sasha Borodin
Great website, thanks James!

-Sasha

 From: James Holmes [EMAIL PROTECTED]
 Reply-To: Struts Users Mailing List [EMAIL PROTECTED]
 Date: Tue, 16 Sep 2003 15:10:36 -0400
 To: 'Struts Users Mailing List' [EMAIL PROTECTED]
 Subject: RE: struts-faces
 
 Hi Sasha,
 
 I don't have a specific resource in mind for you to look at, but I have
 compiled the most comprehensive listing of Java Server Faces resources
 on my website.
 
 http://www.jamesholmes.com/JavaServerFaces/
 
 Hope that helps,
 
 -James
 
 -Original Message-
 From: Sasha Borodin [mailto:[EMAIL PROTECTED]
 Sent: Tuesday, September 16, 2003 12:35 PM
 To: Struts Users Mailing List
 Subject: Re: struts-faces
 
 Thanks Craig.
 
 You can, but the integration library lets you use Struts Actions on
 the
 back end, creates form beans automatically, and so on.
 
 Reading through Sun's Web Services Tutorial section on JSF, things are
 starting to come into focus:  JSF provides functionality that overlaps
 that
 of Struts (my misconception was that JSF was strictly a UI component tag
 library).
 
 .: Anyone know of a resource that summarizes/contrasts solutions
 provided by
 both frameworks?
 
 i.e.:
   -UI Components
   -controller components
   -model components
   -Page Flow
   -etc.
 
 Thanks,
 
 -Sasha
 
 
 From: Craig R. McClanahan [EMAIL PROTECTED]
 Reply-To: Struts Users Mailing List [EMAIL PROTECTED]
 Date: Tue, 16 Sep 2003 10:16:22 -0700 (PDT)
 To: Struts Users Mailing List [EMAIL PROTECTED]
 Subject: Re: struts-faces
 
 On Tue, 16 Sep 2003, Sasha Borodin wrote:
 
 Date: Tue, 16 Sep 2003 11:30:40 -0500
 From: Sasha Borodin [EMAIL PROTECTED]
 Reply-To: Struts Users Mailing List [EMAIL PROTECTED]
 To: Struts Users Mailing List [EMAIL PROTECTED]
 Subject: struts-faces
 
 Can someone tell me why I'd need a struts integration version of
 the JSF
 implementation?  Why can't one just add the RI JAR files, TLD
 documents,
 config files and just starting using the tags?
 
 
 You can, but the integration library lets you use Struts Actions on
 the
 back end, creates form beans automatically, and so on.
 
 Thanks,
 
 -Sasha
 
 
 Craig
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: struts-faces

2003-09-16 Thread Craig R. McClanahan
On Tue, 16 Sep 2003, Sasha Borodin wrote:

 Date: Tue, 16 Sep 2003 12:35:22 -0500
 From: Sasha Borodin [EMAIL PROTECTED]
 Reply-To: Struts Users Mailing List [EMAIL PROTECTED]
 To: Struts Users Mailing List [EMAIL PROTECTED]
 Subject: Re: struts-faces

 Thanks Craig.

  You can, but the integration library lets you use Struts Actions on the
  back end, creates form beans automatically, and so on.

 Reading through Sun's Web Services Tutorial section on JSF, things are
 starting to come into focus:  JSF provides functionality that overlaps that
 of Struts (my misconception was that JSF was strictly a UI component tag
 library).


Yep ... there's quite a bit of overlap, and JavaServer Faces is FAR more
than a component tag library.

 .: Anyone know of a resource that summarizes/contrasts solutions provided by
 both frameworks?


I'll throw in a few short comments below, but caution you that this is
based on the EA4 release of JavaServer Faces.  Things are still evolving
rapidly.  (My comments ought to have at least a *little* relevance,
because I'm both the original author of Struts and the co-spec-lead for
JavaServer Faces :-).

 i.e.:
 -UI Components

Struts doesn't really have any notion of components at all (the closest
thing is properties of a form bean), while JavaServer Faces has a fairly
rich component model that is accessible at both the Java and JSP levels
(JSP is not required), supports a separate rendering model (so you can
render something like a select one control as either a set of radio
buttons or a select element with one simple change) and is not tied to
HTML -- although the default render kit included will be HTML specific.
Out of the box, you'll get complex components like a grid and an editable
table, and there are already demonstration components for things like
trees and menus that (in a Struts world) require additional add-on tag
libraries.

For people who have existing Struts expertise and/or applications, this is
the key value add of integrating JavaServer Faces -- you can use the fancy
UI component model without having to change your back-end form beans or
actions.

 -controller components

This is where Struts shines, and I assume you're familiar with that.
JavaServer Faces uses a somewhat different abstraction for navigation, and
defers the decision of what page to display next to a NavigationHandler
that is configured with a set of rules -- the next page is determined by
matching rules for:
* The page that is currently being displayed
* Which Action was invoked (for example, you can have
  multiple submit buttons on the page that do different things)
* Which logical outcome was returned by the Action that
  was invoked -- sort of like how Struts actions return an
  ActionForward.

JavaServer Faces is more flexible in how you organize your processing
logic -- you can maintain a Struts-like model of separate form beans and
action classes, or you can combine them together (somewhat like how
code-behind pages work in ASP.Net).

Struts has a couple of framework features (Tiles and the Validator
Framework) that are beyond the current scope of JavaServer Faces -- but
one advantage of the integration library is that you'll be able to use
these sorts of technologies together.

 -model components

Being presentation frameworks, both technologies are mostly focused on the
view and controller.  The important part becomes how the presentation tier
and model tier object communicate values:

* With Struts, you can use property expressions to navigate
  down a bean hierarchy -- something like:

bean:write name=customer property=address.city/

* With JavaServer Faces, this is done with value reference
  expressions that use the same syntax as JSTL EL expressions.
  The equivalent tag to output a bean property would be:

h:output_text valueRef=customer.address.city/:

* In both technologies, it's possible to evaluate expressions
  like this programmatically in your Java code -- with Struts,
  you use the commons-beanutils package; with JavaServer Faces,
  you use the ValueBinding API.

* With Struts, the framework will automatically create form bean
  instances for you if you want.  If you're using DynaActionForms,
  you can also preconfigure the properties of the created form bean
  using the initial attribute.

* With JavaServer Faces, this concept is extended to support creation
  of *any* model tier bean (in any scope), complete with configuring
  the initial properties, using the Managed Bean Creation facility.
  In the example above, I can configure things such that if the customer
  object does not already exist, a new instance of a configured class
  will automatically be created, and have its property values also
  configured based on settings in faces-config.xml.

 -Page Flow

Neither technology has direct support for page flows.  There are add-ons
for Struts already; I have no doubt that such things will emerge for
JavaServer Faces as well.

 -etc.

Because

RE: Struts Faces ea validation XML error

2003-03-11 Thread PILGRIM, Peter, FM
 -Original Message-
 From: Craig R. McClanahan [mailto:[EMAIL PROTECTED]
 
 On Mon, 10 Mar 2003, PILGRIM, Peter, FM wrote:
 
  Date: Mon, 10 Mar 2003 17:18:25 -
  From: PILGRIM, Peter, FM [EMAIL PROTECTED]
  Reply-To: Struts Users Mailing List [EMAIL PROTECTED]
  To: Struts Users Mailing List (E-mail) 
 [EMAIL PROTECTED]
  Subject: Struts Faces ea validation XML error
 
  After copying all three JSF JAR to struts-faces/WEB-INF,
  and copying commons-logging-1.0.2.jar over WEB-INF/lib
  I got a validation error in the Struts Faces download.
 
  Is the validation XML correct?
 
 
 I only get errors like this when I forget to include
 /WEB-INF/validation.xml in my webapps -- can you make sure 
 that is still
 present?
 
 Craig

It is very weird because I have both `/WEB-INF/validation.xml'
and `/WEB-INF/validation-rules.xml' in the right place,
I also checked the `/WEB-INF/struts-config.xml' to make
sure that validator plugin is correctly set. This is 
how I downloaded the struts-faces.jar ``as is'

Something is wrong here.

  org.apache.jasper.JasperException: Depends string email 
 was not found in
  validator-rules.xml.
  void
  
 org.apache.jasper.servlet.JspServletWrapper.service(javax.serv
 let.http.HttpS
  ervletRequest, javax.servlet.http.HttpServletResponse, boolean)
  JspServletWrapper.java:248
  void
  
 org.apache.jasper.servlet.JspServlet.serviceJspFile(javax.serv
 let.http.HttpS
  ervletRequest, javax.servlet.http.HttpServletResponse, 
 java.lang.String,
  java.lang.Throwable, boolean)
  JspServlet.java:295
  void
  
 org.apache.jasper.servlet.JspServlet.service(javax.servlet.htt
 p.HttpServletR
  equest, javax.servlet.http.HttpServletResponse)
  JspServlet.java:241
 
  ----
 

----

--
Peter Pilgrim,
Struts/J2EE Consultant, RBoS FM, Risk IT
Tel: +44 (0)207-375-4923



  Visit our Internet site at http://www.rbsmarkets.com

This e-mail is intended only for the addressee named above.
As this e-mail may contain confidential or privileged information,
if you are not the named addressee, you are not authorised to
retain, read, copy or disseminate this message or any part of it.
The Royal Bank of Scotland plc is registered in Scotland No 90312
Registered Office: 36 St Andrew Square, Edinburgh EH2 2YB
 Regulated by the Financial Services Authority


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: Struts Faces ea validation XML error [SOLVED]

2003-03-11 Thread PILGRIM, Peter, FM

 -Original Message-
 From: PILGRIM, Peter, FM 
  -Original Message-
  From: Craig R. McClanahan [mailto:[EMAIL PROTECTED]
  
  On Mon, 10 Mar 2003, PILGRIM, Peter, FM wrote:
  
   Date: Mon, 10 Mar 2003 17:18:25 -
   From: PILGRIM, Peter, FM [EMAIL PROTECTED]
   Reply-To: Struts Users Mailing List 
 [EMAIL PROTECTED]
   To: Struts Users Mailing List (E-mail) 
  [EMAIL PROTECTED]
   Subject: Struts Faces ea validation XML error
  
   After copying all three JSF JAR to struts-faces/WEB-INF,
   and copying commons-logging-1.0.2.jar over WEB-INF/lib
   I got a validation error in the Struts Faces download.
  
   Is the validation XML correct?
  
  
  I only get errors like this when I forget to include
  /WEB-INF/validation.xml in my webapps -- can you make sure 
  that is still
  present?
  
  Craig
 
 It is very weird because I have both `/WEB-INF/validation.xml'
 and `/WEB-INF/validation-rules.xml' in the right place,
 I also checked the `/WEB-INF/struts-config.xml' to make
 sure that validator plugin is correctly set. This is 
 how I downloaded the struts-faces.jar ``as is'
 
 Something is wrong here.

I copied the new validation.xml and validation-rules.xml from
the original Struts example in 1.1 beta 3 release over to the
Struts-Faces web app. Lo and behold, it works!

   org.apache.jasper.JasperException: Depends string email 
  was not found in
   validator-rules.xml.
 void
   
----
 
 ----

Mr. Brownstone, Appetite for Destruction, G  R

--
Peter Pilgrim,
Struts/J2EE Consultant, RBoS FM, Risk IT
Tel: +44 (0)207-375-4923




  Visit our Internet site at http://www.rbsmarkets.com

This e-mail is intended only for the addressee named above.
As this e-mail may contain confidential or privileged information,
if you are not the named addressee, you are not authorised to
retain, read, copy or disseminate this message or any part of it.
The Royal Bank of Scotland plc is registered in Scotland No 90312
Registered Office: 36 St Andrew Square, Edinburgh EH2 2YB
 Regulated by the Financial Services Authority


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Struts Faces ea validation XML error

2003-03-10 Thread Craig R. McClanahan


On Mon, 10 Mar 2003, PILGRIM, Peter, FM wrote:

 Date: Mon, 10 Mar 2003 17:18:25 -
 From: PILGRIM, Peter, FM [EMAIL PROTECTED]
 Reply-To: Struts Users Mailing List [EMAIL PROTECTED]
 To: Struts Users Mailing List (E-mail) [EMAIL PROTECTED]
 Subject: Struts Faces ea validation XML error

 After copying all three JSF JAR to struts-faces/WEB-INF,
 and copying commons-logging-1.0.2.jar over WEB-INF/lib
 I got a validation error in the Struts Faces download.

 Is the validation XML correct?


I only get errors like this when I forget to include
/WEB-INF/validation.xml in my webapps -- can you make sure that is still
present?

Craig

 org.apache.jasper.JasperException: Depends string email was not found in
 validator-rules.xml.
   void
 org.apache.jasper.servlet.JspServletWrapper.service(javax.servlet.http.HttpS
 ervletRequest, javax.servlet.http.HttpServletResponse, boolean)
   JspServletWrapper.java:248
   void
 org.apache.jasper.servlet.JspServlet.serviceJspFile(javax.servlet.http.HttpS
 ervletRequest, javax.servlet.http.HttpServletResponse, java.lang.String,
 java.lang.Throwable, boolean)
   JspServlet.java:295
   void
 org.apache.jasper.servlet.JspServlet.service(javax.servlet.http.HttpServletR
 equest, javax.servlet.http.HttpServletResponse)
   JspServlet.java:241

 ----

 --
 Peter Pilgrim,
 Struts/J2EE Consultant, RBoS FM, Risk IT
 Tel: +44 (0)207-375-4923


 ***
   Visit our Internet site at http://www.rbsmarkets.com

 This e-mail is intended only for the addressee named above.
 As this e-mail may contain confidential or privileged information,
 if you are not the named addressee, you are not authorised to
 retain, read, copy or disseminate this message or any part of it.
 The Royal Bank of Scotland plc is registered in Scotland No 90312
 Registered Office: 36 St Andrew Square, Edinburgh EH2 2YB
 Regulated by the Financial Services Authority
 ***

 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Struts-Faces

2003-03-09 Thread Dom
Found : I replaced commons-logging.jar with the commons-logging-1.0.2 one in
WEB-INF/lib

Now, I try to run one of my struts app using jakarta-struts-faces-0.3.
A very simple jsp. I've added all the required jars, updated web.xml by
including the JavaServer Faces Servlet Configuration and the required Tags :

%@ taglib prefix=c uri=http://java.sun.com/jstl/core; %
%@ taglib prefix=f uri=http://java.sun.com/jsf/core; %
%@ taglib prefix=h uri=http://java.sun.com/jsf/html; %
%@ taglib prefix=s uri=http://jakarta.apache.org/struts/tags-faces; %

f:use_faces
s:html locale=true
body
s.form ...
h:command_button id=submit type=SUBMIT ...
/s:form
/body
/s:html
/f:use_faces

When running this jsp, I get :

2003-03-09 19:33:36 StandardWrapperValve[jsp]: Servlet.service() pour la
servlet jsp a généré une exception
org.apache.jasper.JasperException: Cannot find FacesContext
 at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:2
54)
 at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
 at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
 at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:247)
 at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:193)
 at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:256)
 at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
 at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
 at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
 at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:191)
 at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
 at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
 at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
 at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
 at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180
)
 at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
 at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.
java:171)
 at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
 at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172
)
 at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
 at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
 at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
 at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:174)
 at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
 at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
 at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
 at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
 at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:594)
 at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConne
ction(Http11Protocol.java:392)
 at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
 at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav
a:619)
 at java.lang.Thread.run(Thread.java:536)
- Root Cause -
javax.servlet.ServletException: Cannot find FacesContext
 at
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImp
l.java:533)
 at
org.apache.jsp.customerFindAll_jsp._jspService(customerFindAll_jsp.java:76)
 at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
 at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:2
10)
 at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
 at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
 at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:247)
 at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:193)
 at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:256)
 at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
 at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
 at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
 at