read the source code

2009-10-28 Thread mark lu

I want to read struts2's source code,but i found it's too complicated.
so,i want to find a book that analysis the soure code.
who can give me some suggestions?recommend some books to me?
thanks very much!!
-- 
View this message in context: 
http://www.nabble.com/read-the-source-code-tp26090230p26090230.html
Sent from the Struts - User mailing list archive at Nabble.com.


-
To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
For additional commands, e-mail: user-h...@struts.apache.org



Re: RE: Adding Json to existing action

2009-10-28 Thread Michael Varlik
Hi,

I already use the json plugin. I have written a new action to test the plugin 
and it works fine - I get my json result.
But for some reason it doesn't work with the existing action (I didn't write 
this action).

Here's what I did:
* Installed the json plugin by copying it into WEB-INF/lib
* Added a mapping to struts.xml which refers to the existing
  action but has a json result type and a different name.
* Added the getJsonData() method to the action with return execute();
  in the body.

Now I can call the action by it name myJsonData.action but it only
returns success.


 Original-Nachricht 
 Datum: Tue, 27 Oct 2009 12:56:51 -0700 (PDT)
 Von: Struts Two struts...@yahoo.ca
 An: Struts Users Mailing List user@struts.apache.org
 Betreff: Re: RE: Adding Json to existing action

 What I meant was either to use Json Plugin for struts 2. Read the
 following Wiki page:
 
 http://cwiki.apache.org/WW/json-plugin.html
 
 The JSON plugin is bundled with Struts since 2.1.7. Or you can write your
 customized Struts 2 Result type for JSON and register it in your
 struts2.xml for use [does not make sense to do that if you are using 2.1.7+].
 
 To learn how to do that, take a look at the a sample provided in struts 2
 in action. That should do it as well.
 
 Hope this helps.
 
 
 
 
 --- On Tue, 10/27/09, Michael Varlik m.var...@gmx.de wrote:
 
  From: Michael Varlik m.var...@gmx.de
  Subject: Re: RE: Adding Json to existing action
  To: Struts Users Mailing List user@struts.apache.org
  Received: Tuesday, October 27, 2009, 3:50 PM
  I just noticed a mistake I made. When
  adding the parameter to the result I also have to add a
  getJsonData() method to the action, right?
  I have added this method which actually calls execute().
  Now I don't get null as a result anymore but I get
  success which is also not what I expected.
  
  I guess I have missed something. Since this is the first
  time I use struts, I have no idea what I did wrong. Any
  hints are appreciated.
  
  Cheers,
  Markus
  
   Original-Nachricht 
   Datum: Tue, 27 Oct 2009 16:09:25 +0100
   Von: Michael Varlik m.var...@gmx.de
   An: Struts Users Mailing List user@struts.apache.org,
  user@struts.apache.org
   Betreff: Re: RE: Adding Json to existing action
  
   Thanks for that hint. I have extended my mapping by
  adding param
   name=rootjsonData/param to my action
  mapping's result tag. Now I don't get any
   Exception and the server log looks just fine. However,
  the value returned
   by the action is just null.
   Do you have any idea what could be wrong here?
   
   Cheers,
   Markus
   
    Original-Nachricht 
Datum: Tue, 27 Oct 2009 09:39:01 -0400
Von: Mike Baranski list-subscripti...@secmgmt.com
An: \'Struts Users Mailing List\' user@struts.apache.org
Betreff: RE: Adding Json to existing action
   
I do this to pass parameters, using prototype
  js:

s:set name=foo value=%{'door' +
  door.id}/
    s:set name=form_name
  value=%{'form_door' + door.id}/

    s:set
  name=door_description value=getText(#foo)/
    s:if test=door.state ==
  1
        s:url
  id=door_url action=unlocks:param name=door.id
value=door.id//s:url
        s:form
  method=POST action=unlock id=%{#form_name}
onsubmit=return false;
       
      s:hidden name=door.id/
       
      s:hidden name=door.state/
       
      s:url var=locked_image
value=/pages/door-control/images/locked.png
  /
       
      s:submit type=image alt=Locked
src=%{locked_image} onclick=%{'new
  Ajax.Updater(\\'' + #foo +'\\',
   \\''
+
#door_url + '\\', {evalScripts: true}); return
  false;'}/
       
  /s:form

/s:if

-Original Message-
From: Struts Two [mailto:struts...@yahoo.ca]
Sent: Tuesday, October 27, 2009 9:24 AM
To: Struts Users Mailing List
Subject: Re: Adding Json to existing action

You can either use Json plugin or write your
  own customized result type
that return JSON.

--- On Tue, 10/27/09, Michael Varlik m.var...@gmx.de
  wrote:

 From: Michael Varlik m.var...@gmx.de
 Subject: Adding Json to existing action
 To: user@struts.apache.org
 Received: Tuesday, October 27, 2009,
  1:07 PM
 Hi,

 I need to call an existing struts action
  within my
 application from a
 JavaScript function. I thought it might
  be possible to
 create an additional entry in the struts
  mapping file like
 this:

 action name=getDataJson
 class=com.mypackage.MyAction
  method=getData
 result type=json /
 /action

 and then call the action with
  getDataJson.action.
 Unfortunately, when I try this a
  NullPointerException
 occurs in the action code. It seems,
  some parameters are not
 properly initialized.

 What I'd like to know is: what is the
  recommendet way of
 calling an existing action to 

Re: RE: Adding Json to existing action

2009-10-28 Thread Michael Varlik
Hi,

whis is the mapping for the action as it is currently used in the application. 
No json here:

action name=getDailyAssetUtilizationReport 
class=com.pbvm.crr.web.assetcalendar.AssetCalendarAction 
method=getDailyAssetUtilizationReport   
result/jsp/crr_Asset_Calendar_Daily_Report.jsp/result
/action

This is the mapping I have created which points to the same action but with 
json enabled:
action name=getDailyAssetUtilizationReportNew 
class=com.pbvm.crr.web.assetcalendar.AssetCalendarAction 
method=getDailyAssetUtilizationReport
  result type=json
param name=rootjsonData/param
  /result
/action

The only method I have added to the action is this:

public String getJsonData() throws Exception {
   return getDailyAssetUtilizationReport();
}

Do you need any additional information?

 Original-Nachricht 
 Datum: Tue, 27 Oct 2009 13:00:42 -0700
 Von: Musachy Barroso musa...@gmail.com
 An: Struts Users Mailing List user@struts.apache.org
 Betreff: Re: RE: Adding Json to existing action

 can you show us your action mapping and the relevant parts of your code?
 
 musachy
 
 On Tue, Oct 27, 2009 at 8:50 AM, Michael Varlik m.var...@gmx.de wrote:
  I just noticed a mistake I made. When adding the parameter to the result
 I also have to add a getJsonData() method to the action, right?
  I have added this method which actually calls execute(). Now I don't get
 null as a result anymore but I get success which is also not what I
 expected.
 
  I guess I have missed something. Since this is the first time I use
 struts, I have no idea what I did wrong. Any hints are appreciated.
 
  Cheers,
  Markus
 
   Original-Nachricht 
  Datum: Tue, 27 Oct 2009 16:09:25 +0100
  Von: Michael Varlik m.var...@gmx.de
  An: Struts Users Mailing List user@struts.apache.org,
 user@struts.apache.org
  Betreff: Re: RE: Adding Json to existing action
 
  Thanks for that hint. I have extended my mapping by adding param
  name=rootjsonData/param to my action mapping's result tag. Now I
 don't get any
  Exception and the server log looks just fine. However, the value
 returned
  by the action is just null.
  Do you have any idea what could be wrong here?
 
  Cheers,
  Markus
 
   Original-Nachricht 
   Datum: Tue, 27 Oct 2009 09:39:01 -0400
   Von: Mike Baranski list-subscripti...@secmgmt.com
   An: \'Struts Users Mailing List\' user@struts.apache.org
   Betreff: RE: Adding Json to existing action
 
   I do this to pass parameters, using prototype js:
  
   s:set name=foo value=%{'door' + door.id}/
       s:set name=form_name value=%{'form_door' + door.id}/
  
       s:set name=door_description value=getText(#foo)/
       s:if test=door.state == 1
               s:url id=door_url action=unlocks:param
 name=door.id
   value=door.id//s:url
               s:form method=POST action=unlock
 id=%{#form_name}
   onsubmit=return false;
                       s:hidden name=door.id/
                       s:hidden name=door.state/
                       s:url var=locked_image
   value=/pages/door-control/images/locked.png /
                       s:submit type=image alt=Locked
   src=%{locked_image} onclick=%{'new Ajax.Updater(\\'' + #foo +'\\',
  \\''
   +
   #door_url + '\\', {evalScripts: true}); return false;'}/
               /s:form
  
   /s:if
  
   -Original Message-
   From: Struts Two [mailto:struts...@yahoo.ca]
   Sent: Tuesday, October 27, 2009 9:24 AM
   To: Struts Users Mailing List
   Subject: Re: Adding Json to existing action
   
   You can either use Json plugin or write your own customized result
 type
   that return JSON.
   
   --- On Tue, 10/27/09, Michael Varlik m.var...@gmx.de wrote:
   
From: Michael Varlik m.var...@gmx.de
Subject: Adding Json to existing action
To: user@struts.apache.org
Received: Tuesday, October 27, 2009, 1:07 PM
Hi,
   
I need to call an existing struts action within my
application from a
JavaScript function. I thought it might be possible to
create an additional entry in the struts mapping file like
this:
   
action name=getDataJson
class=com.mypackage.MyAction method=getData
result type=json /
/action
   
and then call the action with getDataJson.action.
Unfortunately, when I try this a NullPointerException
occurs in the action code. It seems, some parameters are not
properly initialized.
   
What I'd like to know is: what is the recommendet way of
calling an existing action to get JSON results? Is it a good
idea to do this at all?
   
Cheers,
Markus
--
Neu: GMX DSL bis 50.000 kBit/s und 200,- Euro
Startguthaben!
http://portal.gmx.net/de/go/dsl02
   
   
 -
To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
For additional commands, e-mail: user-h...@struts.apache.org
   
   
   
   
   
  

Re: read the source code

2009-10-28 Thread Wes Wannemacher
As far as I know, there are no books that specifically analyze the
source code for Struts 2. I would suggest starting by reading the
source code to Xwork. To really get a handle on what is going on,
first try to get a solid understanding of the command pattern design
pattern. Then, take a look at the xwork source to see how it is
implemented there. Once you feel comfortable at that level, take a
good look at the Servlet and JSP specifications. Then you can take a
look at the source for Struts 2. It also wouldn't hurt to take a look
at Google Guice. Although we aren't using Guice, we branched it early
on and have been using it for internal dependency injection (both in
Xwork and in Struts 2).

As you get further along, feel free to post questions on the
d...@struts.apache.org list.

-Wes

On Wed, Oct 28, 2009 at 3:09 AM, mark lu liujuns...@ygsoft.com wrote:

 I want to read struts2's source code,but i found it's too complicated.
 so,i want to find a book that analysis the soure code.
 who can give me some suggestions?recommend some books to me?
 thanks very much!!
 --
 View this message in context: 
 http://www.nabble.com/read-the-source-code-tp26090230p26090230.html
 Sent from the Struts - User mailing list archive at Nabble.com.


 -
 To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
 For additional commands, e-mail: user-h...@struts.apache.org





-- 
Wes Wannemacher

Head Engineer, WanTii, Inc.
Need Training? Struts, Spring, Maven, Tomcat...
Ask me for a quote!

-
To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
For additional commands, e-mail: user-h...@struts.apache.org



Re: deserializable ActionSupport

2009-10-28 Thread Greg Lindholm
I believe the short answer is you can ignore this warning.  If really
inclined you could create your own base class that extends from
ActionSupport and implements readObject().

It's very common in web frameworks to use Serializable objects for a couple
or reasons, such as being able to preserve state across a server restart and
for shipping objects around in a cluster.

With that said, (IMHO) I believe it was a design mistake to have
ActionSupport implement Serializable. I don't believe that either of the
above really apply to Action objects since they are short-lived. The choice
of making Actions Serializable should have been left to the developer and
not forced by the framework.
(Of course I realize that no one is truly forced to use ActionSupport and
you can reimplement your own version that is not Serializable, but why
should you need to.)

Any committers care to comment on the reasons for having ActionSupport
implement Serializable?


On Wed, Oct 28, 2009 at 1:11 AM, Lee Clemens j...@leeclemens.net wrote:

 Hello,

 I (my IDE) noticed a warning showing that my Struts 2 Actions (they extend
 com.opensymphony.xwork2.ActionSupport) may be deserialized, compromising
 security.

 The IDE (IntelliJ 8.1) further states that the class may be deserializable
 as it supports the Serializable interface (ActionSupport does) and its
 readObject() method is not defined to immediately throw an error.

 Please excuse my naivety or if this is off-topic, but is this safe?
 Furthermore, how can I override the readObject() method as suggested and
 throw an error without compromising functionality within Struts?

 As an aside, if this warning can safely be addressed, why doesn't
 ActionSupport override readObject() to avoid this?

 Thanks,
 Lee



 -
 To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
 For additional commands, e-mail: user-h...@struts.apache.org




Re: deserializable ActionSupport

2009-10-28 Thread Musachy Barroso
The people who made that decision are by now long gone, and I can't
think of any good reason myself.

musachy

On Wed, Oct 28, 2009 at 7:26 AM, Greg Lindholm greg.lindh...@gmail.com wrote:
 I believe the short answer is you can ignore this warning.  If really
 inclined you could create your own base class that extends from
 ActionSupport and implements readObject().

 It's very common in web frameworks to use Serializable objects for a couple
 or reasons, such as being able to preserve state across a server restart and
 for shipping objects around in a cluster.

 With that said, (IMHO) I believe it was a design mistake to have
 ActionSupport implement Serializable. I don't believe that either of the
 above really apply to Action objects since they are short-lived. The choice
 of making Actions Serializable should have been left to the developer and
 not forced by the framework.
 (Of course I realize that no one is truly forced to use ActionSupport and
 you can reimplement your own version that is not Serializable, but why
 should you need to.)

 Any committers care to comment on the reasons for having ActionSupport
 implement Serializable?


 On Wed, Oct 28, 2009 at 1:11 AM, Lee Clemens j...@leeclemens.net wrote:

 Hello,

 I (my IDE) noticed a warning showing that my Struts 2 Actions (they extend
 com.opensymphony.xwork2.ActionSupport) may be deserialized, compromising
 security.

 The IDE (IntelliJ 8.1) further states that the class may be deserializable
 as it supports the Serializable interface (ActionSupport does) and its
 readObject() method is not defined to immediately throw an error.

 Please excuse my naivety or if this is off-topic, but is this safe?
 Furthermore, how can I override the readObject() method as suggested and
 throw an error without compromising functionality within Struts?

 As an aside, if this warning can safely be addressed, why doesn't
 ActionSupport override readObject() to avoid this?

 Thanks,
 Lee



 -
 To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
 For additional commands, e-mail: user-h...@struts.apache.org




-
To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
For additional commands, e-mail: user-h...@struts.apache.org



Re: deserializable ActionSupport

2009-10-28 Thread Lukasz Lenart
2009/10/28 Musachy Barroso musa...@gmail.com:
 The people who made that decision are by now long gone, and I can't
 think of any good reason myself.

As I know, ActionSupport is a part of XWork (common purpose action
framework) that is used by example in WebLogic 8.1 to manage multiple
tasks with WorkManager - they can be queued and distributed over the
network - maybe that was the reason


Regards
-- 
Lukasz
http://www.lenart.org.pl/
http://dailylog.lenart.org.pl/

-
To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
For additional commands, e-mail: user-h...@struts.apache.org



[S2] Jsp not loading bean from superclass static method

2009-10-28 Thread Neil Aggarwal
Hello:

I jut upgraded from Struts 2.0.14 to 2.1.8
and noticed I am now getting this error:

SEVERE: Servlet.service() for servlet jsp threw exception
The requested list key 'accountManagerMap' could not be resolved as a
 collection/array/map/enumeration/iterator type. Example: people or
people.{name}

I have this in my JSP code:

s:select label=Account Manager
key=marketingContact.accountManager.emailAddress 
list=accountManagerMap/

The method getAccountManagerMap is in a superclass and is static.

This worked fine in 2.0.14, did something change in 2.1.8?

Thanks,
Neil

--
Neil Aggarwal, (281)846-8957, http://www.JAMMConsulting.com
CentOS 5.4 KVM VPS $55/mo, no setup fee, no contract, dedicated 64bit CPU
1GB dedicated RAM, 40GB RAID storage, 500GB/mo premium BW, Zero downtime


-
To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
For additional commands, e-mail: user-h...@struts.apache.org



Re: [S2] Jsp not loading bean from superclass static method

2009-10-28 Thread Lukasz Lenart
You have to define constant as below in struts.xml or in
struts.properties - from some version is set to false by default

struts.ognl.allowStaticMethodAccess=true


Regards
-- 
Lukasz
http://www.lenart.org.pl/
http://dailylog.lenart.org.pl/

-
To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
For additional commands, e-mail: user-h...@struts.apache.org



RE: [S2] Jsp not loading bean from superclass static method

2009-10-28 Thread Neil Aggarwal
Lukasz:

 struts.ognl.allowStaticMethodAccess=true

I will try that.

Neil

--
Neil Aggarwal, (281)846-8957, http://www.JAMMConsulting.com
CentOS 5.4 KVM VPS $55/mo, no setup fee, no contract, dedicated 64bit CPU
1GB dedicated RAM, 40GB RAID storage, 500GB/mo premium BW, Zero downtime 


-
To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
For additional commands, e-mail: user-h...@struts.apache.org



Re: Convention Plugin - Setting dynamic parameter values

2009-10-28 Thread Roger
On Friday 16 October 2009 19:29:05 Musachy Barroso wrote:
 when you declare a result using annotations, the param values can
 contain OGNL values, just like in xml,:
 
  @Action(value=/different/url,
 result...@result(name=success, type=httpheader,
 params={status, %{status}, errorMessage, %{error}})}
   )
   public String execute() {
 return SUCCESS;
   }

Is this true only for result annotations, or does this apply to other 
annotations as well?

 
  I'm tying to define a stream result using the convention plugin. The
  values for the contentLength and inputName require dynamic values.

For future reference. providing a getContentLength() and getInputName() method 
works as well.

Regards

-
To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
For additional commands, e-mail: user-h...@struts.apache.org



Getting result of JSP before sending to client

2009-10-28 Thread Steven Yang
Hi

I am wondering is there a way in Struts2 to get the result of JSP before
returning the composed HTML back to client?

for example

public String execute() {
   ...do my logic and prepare my data

  ...then using the data, compose a HTML file from existing jsp

... then i need to save the HTML file somewhere

...then
return SUCCESS; -- maybe to same HTML or other JSP
}

Thanks


Re: read the source code

2009-10-28 Thread mark lu

Thank you very much for your reply!
I have read some code of xwork.however,i am a littel lazy,so i want to find
a book to introduce .
now that there is no book,I'll follow what you said.



Wes Wannemacher wrote:
 
 As far as I know, there are no books that specifically analyze the
 source code for Struts 2. I would suggest starting by reading the
 source code to Xwork. To really get a handle on what is going on,
 first try to get a solid understanding of the command pattern design
 pattern. Then, take a look at the xwork source to see how it is
 implemented there. Once you feel comfortable at that level, take a
 good look at the Servlet and JSP specifications. Then you can take a
 look at the source for Struts 2. It also wouldn't hurt to take a look
 at Google Guice. Although we aren't using Guice, we branched it early
 on and have been using it for internal dependency injection (both in
 Xwork and in Struts 2).
 
 As you get further along, feel free to post questions on the
 d...@struts.apache.org list.
 
 -Wes
 
 On Wed, Oct 28, 2009 at 3:09 AM, mark lu liujuns...@ygsoft.com wrote:

 I want to read struts2's source code,but i found it's too complicated.
 so,i want to find a book that analysis the soure code.
 who can give me some suggestions?recommend some books to me?
 thanks very much!!
 --
 View this message in context:
 http://www.nabble.com/read-the-source-code-tp26090230p26090230.html
 Sent from the Struts - User mailing list archive at Nabble.com.


 -
 To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
 For additional commands, e-mail: user-h...@struts.apache.org


 
 
 
 -- 
 Wes Wannemacher
 
 Head Engineer, WanTii, Inc.
 Need Training? Struts, Spring, Maven, Tomcat...
 Ask me for a quote!
 
 -
 To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
 For additional commands, e-mail: user-h...@struts.apache.org
 
 
 

-- 
View this message in context: 
http://www.nabble.com/read-the-source-code-tp26090230p26105034.html
Sent from the Struts - User mailing list archive at Nabble.com.


-
To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
For additional commands, e-mail: user-h...@struts.apache.org



Re: read the source code

2009-10-28 Thread Wendy Smoak
On Wed, Oct 28, 2009 at 6:50 PM, mark lu liujuns...@ygsoft.com wrote:
 Thank you very much for your reply!
 I have read some code of xwork.however,i am a littel lazy,so i want to find
 a book to introduce .
 now that there is no book,I'll follow what you said.

It would be great if you could write up your experience as you explore
the source code.  Maybe you'll write that book you're looking for, :)
or a series of blog posts would be fabulous.

-- 
Wendy

-
To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
For additional commands, e-mail: user-h...@struts.apache.org