RE: [FRIDAY] You might be a Wally if ...
... you are always seen with a coffee cup and people start handing you Dilbert clippings -Original Message- From: Emmanouil Batsis [mailto:[EMAIL PROTECTED] Sent: Friday, January 20, 2006 7:46 AM To: Struts Users Mailing List Subject: Re: [FRIDAY] You might be a Wally if ... David Delbecq wrote: ... you wander everyday in corridors, asking everyone around if there are any meetings today. ...after you got into this when you delivered a pizza to the company and someone grabbed you to take his place in a meeting. Especially if you forgot to get paid for the pizza and obvious way to fix the situation is to climb your way up the ladder to manage and get the bill through company expences. Manos Le Vendredi 20 Janvier 2006 16:05, Ted Husted a écrit : ... your petname for seminars and user group meetings is naps and snacks. -Ted. - 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: [OT] Webapp help framework?
Actually, when I put 'java help' into Google I came up with the JavaHelp System at http://java.sun.com/products/javahelp/ Wiebe -Original Message- From: Wendy Smoak [mailto:[EMAIL PROTECTED] Sent: Tuesday, January 10, 2006 7:03 AM To: Struts Users Mailing List Subject: [OT] Webapp help framework? A coworker is looking for a framework like JavaHelp for use with a Struts 1.2 webapp. (Apparently JavaHelp has a webapp component, but it can't be accessed with an https:// URL, which is required.) Putting 'java help' into Google isn't very useful, so I thought I'd call on the collective wisdom of the list for suggestions. :) Thanks! -- Wendy - 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: [OT] Webapp help framework?
I need to read these messages more fully before I respond. ;-( Wiebe -Original Message- From: Wiebe de Jong [mailto:[EMAIL PROTECTED] Sent: Thursday, January 12, 2006 3:14 PM To: 'Struts Users Mailing List' Subject: RE: [OT] Webapp help framework? Actually, when I put 'java help' into Google I came up with the JavaHelp System at http://java.sun.com/products/javahelp/ Wiebe -Original Message- From: Wendy Smoak [mailto:[EMAIL PROTECTED] Sent: Tuesday, January 10, 2006 7:03 AM To: Struts Users Mailing List Subject: [OT] Webapp help framework? A coworker is looking for a framework like JavaHelp for use with a Struts 1.2 webapp. (Apparently JavaHelp has a webapp component, but it can't be accessed with an https:// URL, which is required.) Putting 'java help' into Google isn't very useful, so I thought I'd call on the collective wisdom of the list for suggestions. :) Thanks! -- Wendy - 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: MailReader demo app is rewritten with Struts Dialogs
Hey Ted, What would be an appropriate tool for creating the UML diagrams for MailReader? I use Rose for my work, but I think documentation for open source projects needs to be readable by everyone. I found this recent article, but it doesn't help much. Open source UML editors lag proprietary leader http://programming.newsforge.com/article.pl?sid=05/08/22/1421216 Wiebe -Original Message- From: Ted Husted [mailto:[EMAIL PROTECTED] Sent: Thursday, September 22, 2005 4:51 AM To: Struts Users Mailing List Subject: Re: MailReader demo app is rewritten with Struts Dialogs How about if we start a new SourceForge project for alternative MailReaders? I'd still like to do one for FormDef, for example, but I don't want to saddle the Apache team with too many MailReader implementations. :) To get started, I've setup an area to host some project documentation about MailReader at the Struts University site: * http://opensource2.atlassian.com/confluence/oss/display/STRUTS/MailReader I'd like to do a set of fully-dressed Use Cases for MailReader, both to shore up the Classic implementation, and to make it easier for people to write alternative MailReaders, as Michael has done. To validate the MailReader implementations, we can use a standard set of UI test in Web Canoo. Then we can define a MailReader application as an application that passes the UI validation tests. Next, I could setup a new SourceForge site to host alternative MailReader implementations. The Struts SourceForge site is already a bit busy, and I think this project merits its own site. Thoughts? -Ted. http://www.husted.com/poe/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
[solved]RE: Nested error
I never did figure out how to fix the exception I was getting, but I found an alternate implementation that works. However, my business logic is built on ArrayList and I didn't want to change that. Thanks to the magic of getters and setters, I was able to do both: - Form snippet: private ArrayList items; public Object getItems(int index) { return items.get(index); } public Object[] getItems() { return items.toArray(); } public void setItems(int index, Object item) { items.set(index, item); } public void setItems(Object[] items) { } public ArrayList getItemlist() { return items; } public void setItemlist(ArrayList items) { this.items = items; } - I noticed that setItems() is never called so I never bothered to implement it. Everything is now working fine. Thanks for your time. Wiebe -Original Message- From: Michael Jouravlev [mailto:[EMAIL PROTECTED] Sent: Friday, September 09, 2005 10:22 AM To: Struts Users Mailing List Subject: Re: Nested error On 9/9/05, Wiebe de Jong [EMAIL PROTECTED] wrote: I just started using nested tags on a page, and when I submit it, Struts causes the following error: HTTP ERROR: 503 Service Unavailable java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 RequestURI=/ecom/productSetUpdateSubmit.do This happens before even getting to my action. The form is displayed correctly with several items in the collection. JSP snippet: nested:iterate property=items type=com.mycompany.ecom.dao.ProductSetItem tr td class=labelItem:/td td class=ecombodynested:text property=productPartID styleClass=form//td td class=ecombodynested:text property=status styleClass=form//td /tr /nested:iterate Form snippet: private Collection items; public Collection getItems() { return items; } public void setItems(Collection items) { this.items = items; } I'm running Struts 1.1 on JBoss-2.4.3_Jetty-3.1.3-1 with JDK 1.3.1_11 Any ideas? nested:iterate property=items ... IndexOutOfBoundsException: Index: 0, Size: 0 ... private Collection items; --- null How do I get past this problem? Initializing items might help. Michael. - 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]
Nested error
I just started using nested tags on a page, and when I submit it, Struts causes the following error: HTTP ERROR: 503 Service Unavailable java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 RequestURI=/ecom/productSetUpdateSubmit.do This happens before even getting to my action. The form is displayed correctly with several items in the collection. JSP snippet: nested:iterate property=items type=com.mycompany.ecom.dao.ProductSetItem tr td class=labelItem:/td td class=ecombodynested:text property=productPartID styleClass=form//td td class=ecombodynested:text property=status styleClass=form//td /tr /nested:iterate Form snippet: private Collection items; public Collection getItems() { return items; } public void setItems(Collection items) { this.items = items; } I'm running Struts 1.1 on JBoss-2.4.3_Jetty-3.1.3-1 with JDK 1.3.1_11 Any ideas? How do I get past this problem? Wiebe - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: Nested error
Michael, The collection was initialized. In fact, it had several items in it and the form had successfully displayed, as I mentioned. The error occurs when I hit the submit button, whether I changed any values or not. Wiebe -Original Message- From: Michael Jouravlev [mailto:[EMAIL PROTECTED] Sent: Friday, September 09, 2005 10:22 AM To: Struts Users Mailing List Subject: Re: Nested error On 9/9/05, Wiebe de Jong [EMAIL PROTECTED] wrote: I just started using nested tags on a page, and when I submit it, Struts causes the following error: HTTP ERROR: 503 Service Unavailable java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 RequestURI=/ecom/productSetUpdateSubmit.do This happens before even getting to my action. The form is displayed correctly with several items in the collection. JSP snippet: nested:iterate property=items type=com.mycompany.ecom.dao.ProductSetItem tr td class=labelItem:/td td class=ecombodynested:text property=productPartID styleClass=form//td td class=ecombodynested:text property=status styleClass=form//td /tr /nested:iterate Form snippet: private Collection items; public Collection getItems() { return items; } public void setItems(Collection items) { this.items = items; } I'm running Struts 1.1 on JBoss-2.4.3_Jetty-3.1.3-1 with JDK 1.3.1_11 Any ideas? nested:iterate property=items ... IndexOutOfBoundsException: Index: 0, Size: 0 ... private Collection items; --- null How do I get past this problem? Initializing items might help. Michael. - 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: Nested error
I am definitely using session scope. Struts-config snippet: action path=/productSetUpdate type=com.mycompany.ecom.struts.product.ProductAction name=productSetForm scope=session validate=false parameter=productSetUpdate forward name=success path=ecom.admin.product.set.update.page/ /action action path=/productSetUpdateSubmit type=com.mycompany.ecom.struts.product.ProductAction name=productSetForm scope=session validate=false input=ecom.admin.product.set.update.page parameter=productSetUpdateSubmit forward name=success path=/productSetsList.do/ /action Action snippet: private ActionForward doProductSetUpdate(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { log.debug(:doProductSetUpdate); HttpSession session = request.getSession(); // get productSetID from parameter String productSetIDstr = request.getParameter(productSetID); int productSetID = ((productSetIDstr == null) ? 0 : Integer.parseInt(productSetIDstr)); // get set ProductBD productBD = new ProductBD(); ProductSetWithItems setWithItems = productBD.findSetByIDWithItems(productSetID); // save set in session session.setAttribute(productSetWithItems, setWithItems); // update form ProductSetForm productSetForm = (ProductSetForm) form; BeanUtils.copyProperties(productSetForm, setWithItems); // Forward control to the success URI specified in struts-config.xml return (mapping.findForward(success)); } Does BeanUtils.copyProperties do a shallow or deep copy? Also, it is copying from an ArrayList to a Collection. Wiebe -Original Message- From: Michael Jouravlev [mailto:[EMAIL PROTECTED] Sent: Friday, September 09, 2005 11:18 AM To: Struts Users Mailing List Subject: Re: Nested error It was initialized when JSP was prepared, then response was returned to the browser. If you use formbean with request scope, it is gone. When you hit the submit button, you initiate new request, it which the form is recreated, and this field may not be initialized. So, the fact that you were able to render a page means nothing, if you use request scope for formbean. Use session scope or reinitialize formbean each time. Caution: if you use request scope, then reset() may be not called (not sure on that), so initialize the form in the consructor. Michael. On 9/9/05, Wiebe de Jong [EMAIL PROTECTED] wrote: Michael, The collection was initialized. In fact, it had several items in it and the form had successfully displayed, as I mentioned. The error occurs when I hit the submit button, whether I changed any values or not. nested:iterate property=items ... IndexOutOfBoundsException: Index: 0, Size: 0 ... private Collection items; --- null - 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: Technique for undetermined time of processing - progress bar
Here is a graphical progress bar that doesn't use AJAX or JavaScript. http://www.onjava.com/lpt/a/3886 Wiebe -Original Message- From: David Erickson [mailto:[EMAIL PROTECTED] Sent: Monday, July 25, 2005 7:26 AM To: 'Struts Users Mailing List' Subject: RE: Technique for undetermined time of processing - progress bar Ya I think the ajax thing is a great idea for the main work.. but on the offchance someone doesn't have javascript enabled ill have to fall back to a not as graphically nice implementation. -David _ From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Sent: Monday, July 25, 2005 6:14 AM To: Struts Users Mailing List Cc: 'Struts Users Mailing List' Subject: RE: Technique for undetermined time of processing - progress bar Unfortunately, any AJAX implementation will require JavaScript. You can replace this with a standard JSP implementation, but you will have a lot of Flicker as your page updates. You will also have to keep all information that is displayed on your page in the session or request which can chew up your bandwidth on heavly used sites. Inactive hide details for David Erickson [EMAIL PROTECTED]David Erickson [EMAIL PROTECTED] David Erickson [EMAIL PROTECTED] 07/23/2005 09:52 AM Please respond to Struts Users Mailing List user@struts.apache.org To 'Struts Users Mailing List' user@struts.apache.org cc Subject RE: Technique for undetermined time of processing - progress bar What If the end user has javascript disabled? Does DWR handle that cleanly or are you out of luck? -David _ From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Sent: Friday, July 22, 2005 1:55 PM To: Struts Users Mailing List Cc: 'Struts Users Mailing List' Subject: Re: Technique for undetermined time of processing - progress bar I use AJAX to kick off the process. For this case You can send an AJAX request to get the time, once recieved display a div that will contain the progress bar and submit a second request to run the actual process. On completion, you can forward the page to the next url. If you use DWR and can just display an anamated gif or flash movie, then you can use the built in pre and post process hooks. The preprocess would display the image and the post would hide it. on completion of the process have the page submit to the next screen. Inactive hide details for David Erickson [EMAIL PROTECTED]David Erickson [EMAIL PROTECTED] David Erickson [EMAIL PROTECTED] 07/22/2005 02:41 PM Please respond to Struts Users Mailing List user@struts.apache.org To 'Struts Users Mailing List' user@struts.apache.org cc Subject Technique for undetermined time of processing - progress bar Sorry for the vague subject. I've got a situation where I need to do some processing before moving a user to a specific page. The processing could be very fast or very long. I'd like to have some kind of a progress bar type meter than can show how much time is left. I will know for sure the exact time it will take to process, and I can retrieve that at the beginning of the processing. When processing is done I want to go to a different url. Has anyone done anything like this before, and if so what were the best ways you found of accomplishing this? Thanks, David - 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: Technique for undetermined time of processing - progress bar
Yes, that is what I did when I implemented it. Wiebe -Original Message- From: David Erickson [mailto:[EMAIL PROTECTED] Sent: Monday, July 25, 2005 9:52 AM To: 'Struts Users Mailing List' Subject: RE: Technique for undetermined time of processing - progress bar Thanks for the tip. That one actually is using javascript to refresh the page, but you could just as easily do a meta tag to refresh the page as well. -David -Original Message- From: Wiebe de Jong [mailto:[EMAIL PROTECTED] Sent: Monday, July 25, 2005 10:35 AM To: 'Struts Users Mailing List' Subject: RE: Technique for undetermined time of processing - progress bar Here is a graphical progress bar that doesn't use AJAX or JavaScript. http://www.onjava.com/lpt/a/3886 Wiebe -Original Message- From: David Erickson [mailto:[EMAIL PROTECTED] Sent: Monday, July 25, 2005 7:26 AM To: 'Struts Users Mailing List' Subject: RE: Technique for undetermined time of processing - progress bar Ya I think the ajax thing is a great idea for the main work.. but on the offchance someone doesn't have javascript enabled ill have to fall back to a not as graphically nice implementation. -David _ From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Sent: Monday, July 25, 2005 6:14 AM To: Struts Users Mailing List Cc: 'Struts Users Mailing List' Subject: RE: Technique for undetermined time of processing - progress bar Unfortunately, any AJAX implementation will require JavaScript. You can replace this with a standard JSP implementation, but you will have a lot of Flicker as your page updates. You will also have to keep all information that is displayed on your page in the session or request which can chew up your bandwidth on heavly used sites. Inactive hide details for David Erickson [EMAIL PROTECTED]David Erickson [EMAIL PROTECTED] David Erickson [EMAIL PROTECTED] 07/23/2005 09:52 AM Please respond to Struts Users Mailing List user@struts.apache.org To 'Struts Users Mailing List' user@struts.apache.org cc Subject RE: Technique for undetermined time of processing - progress bar What If the end user has javascript disabled? Does DWR handle that cleanly or are you out of luck? -David _ From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Sent: Friday, July 22, 2005 1:55 PM To: Struts Users Mailing List Cc: 'Struts Users Mailing List' Subject: Re: Technique for undetermined time of processing - progress bar I use AJAX to kick off the process. For this case You can send an AJAX request to get the time, once recieved display a div that will contain the progress bar and submit a second request to run the actual process. On completion, you can forward the page to the next url. If you use DWR and can just display an anamated gif or flash movie, then you can use the built in pre and post process hooks. The preprocess would display the image and the post would hide it. on completion of the process have the page submit to the next screen. Inactive hide details for David Erickson [EMAIL PROTECTED]David Erickson [EMAIL PROTECTED] David Erickson [EMAIL PROTECTED] 07/22/2005 02:41 PM Please respond to Struts Users Mailing List user@struts.apache.org To 'Struts Users Mailing List' user@struts.apache.org cc Subject Technique for undetermined time of processing - progress bar Sorry for the vague subject. I've got a situation where I need to do some processing before moving a user to a specific page. The processing could be very fast or very long. I'd like to have some kind of a progress bar type meter than can show how much time is left. I will know for sure the exact time it will take to process, and I can retrieve that at the beginning of the processing. When processing is done I want to go to a different url. Has anyone done anything like this before, and if so what were the best ways you found of accomplishing this? Thanks, David - 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: Themes
Use CSS. Use one JSP/tile to get your content together, then based on the company setting, choose a CSS style sheet to go with it. The style sheet would contain your graphics, fonts, layouts, etc. Take a look at http://www.csszengarden.com/ to see the possibilities of this approach. Wiebe -Original Message- From: Martin Ravell [mailto:[EMAIL PROTECTED] Sent: Monday, June 13, 2005 5:22 PM To: Struts User Mailing List Subject: Themes I have a requirement to build a 'Themes' (think 'skins') capability into the UI of my Struts app and would just like to poll the list for ideas on the best way to approach such a mechanism. Multiple customers use the same app but they need to be presented with a view that meets their specific requirements. For example graphics, fonts and even layout would be specific to the user's login (actually their company/organization which is stored in the database). Now, for ease of use I guess something relying on CSS would be a way to go. Since I already use stylesheets for most HTML elements specifying a particular theme's stylesheet would not be hard. The tricky part is that I'd also like to be able to specify different jsp pages (mainly for Tiles layouts) in case I need to modify the layout beyond what is easy to do with CSS. Ultimately I may well have functionality in the app itself that is specific to a given customer so this concept should deal with handling customisation to that level well. Ideally I'd like to have a concept of an 'alternate source' directory that is used by the app to load it's jsp. i.e. the app first looks under the appropriate alternate directory for a jsp and uses the page it finds there if it exists but falls back to the standard jsp dir if there is no alternate. This would mean that I could create a theme with only those pages that need to be modified rather than copying and modifying the entire jsp source tree. If anyone has had to implement something along these lines I'd love to hear from you. What sort of mechanisms have you found work well within the structure of a Struts app? My architecture is Struts, Tiles, Spring and Hibernate if you are interested but I'm thinking that it's the Struts area that I'll be looking at mostly for this job. Are there any Struts sub-projects that touch on this sort of thing? Regards Marty - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
output device support
How would I go about supporting multiple output devices, such as browsers, Blackberries, phones and various PDA devices? Are there any Struts extensions out there for this? Or should I investigate Sitemesh or Cocoon? Any case studies or actual code would be greatly appreciated. Thanks Wiebe de Jong
RE: How to get form from JSP
The form is already defined as a bean. You can access it using the name you gave it in your struts-config file. i.e. form-bean name=myForm ... Wiebe -Original Message- From: Billy Ng [mailto:[EMAIL PROTECTED] Sent: Thursday, April 21, 2005 9:16 AM To: Struts Users Mailing List Subject: How to get form from JSP Hi all, Is there a way to get the ActionForm obj in the JSP instead of using bean:define tag Thanks! Billy - 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: Cron type jobs in struts
I've had Quartz in production for a year and it is doing great. Definitely a great scheduler. Wiebe -Original Message- From: Dave Newton [mailto:[EMAIL PROTECTED] Sent: Tuesday, April 12, 2005 8:09 AM To: Struts Users Mailing List Subject: Re: Cron type jobs in struts Brian McGovern wrote: I have a need to run nightly jobs that inspect my data and do certain things based on what it finds.. Now i was goin to write some java classes to be invoked by cron. But I've never done this before in java and wonder if there is a better way to approach this? any thoughts? Now I'm going to check out Quartz, but we've used jcrontab in the past. Dave - 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]
Jasper problem
I've been struggling with a problem for two days and I am hoping somebody here might have an idea. I am using Struts 1.1 with tiles and have a long JSP with about 30 form fields, some with option lists which are stored at the application level. Everything is working fine, then I make one change. I go from: html:text property=resellerID size=25 styleClass=form/ to logic:equal property=resellerID value=0 html:text property=resellerID size=25 styleClass=form/ /logic:equal logic:notEqual property=resellerID value=0 bean:write name=trialDownloadForm property=resellerID/ /logic:notEqual Now all of a sudden I get this error in a totally unrelated area: ... option value=AZAzerbaijan/option option value=BHBahrain/option option value=BDBangladesh/option option value=BIBurundi/option option value=BEBelgium/option [ServletException in:/tiles/trial_download_body.jsp] No selector attribute (cookie/header/name/parameter) was specified' ... Note how the options list is cut off right in the middle. Is this a Jasper problem? How can I fix it? Wiebe - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: Session Idle and Progress Bar
If you are doing a file upload, there is no way to know ahead of time how big the file will be. In this case, instead of displaying a progress bar, display the number of bytes received. There won't be any indication of how long the operation will take, but at least you can see it working. Wiebe -Original Message- From: Eain Mat [mailto:[EMAIL PROTECTED] Sent: Wednesday, April 06, 2005 10:53 PM To: Struts Users Mailing List Subject: RE: Session Idle and Progress Bar I would solve it by adding a 1 minute refresh in a hidden frame in your page to a action which just delivers next refresh header. As long as the user has the page open, the session will never expire. After he closes the browser, the session expires normally. I think this is the simplest solution. Thanks Leo. Eain Wiebe, If you want the page to do refreshes while waiting for the operation to complete, why not implement a progress bar? http://www.onjava.com/pub/a/onjava/2003/06/11/jsp_progressbars.html We are considering to have the progress bar but is there way to figure out or formula, how long does it take to load a respone/file by size? I think someone must already implemented. Let say I wanted to retreive response size of 1 MB, how can I determine how long is it going to take to load a reponse depending on cpu? Eain Wiebe de Jong [EMAIL PROTECTED] wrote: If you want the page to do refreshes while waiting for the operation to complete, why not implement a progress bar? http://www.onjava.com/pub/a/onjava/2003/06/11/jsp_progressbars.html Here, each time the page refreshes, a progress bar is updated, showing the user how the long-running operation is going. Wiebe -Original Message- From: Leon Rosenberg [mailto:[EMAIL PROTECTED] Sent: Wednesday, April 06, 2005 11:11 AM To: 'Struts Users Mailing List' Subject: re: Session Idle I would solve it by adding a 1 minute refresh in a hidden frame in your page to a action which just delivers next refresh header. As long as the user has the page open, the session will never expire. After he closes the browser, the session expires normally. Regards Leon -Urspr|ngliche Nachricht- Von: Wiebe de Jong [mailto:[EMAIL PROTECTED] Gesendet: Mittwoch, 6. April 2005 20:02 An: 'Struts Users Mailing List' Betreff: RE: Session Idle Is it possible to create a listener for the session timeout event? This listener would check to see if there is an operation in progress. If there is, reset the timeout counter. If not, let the session expire. Wiebe -Original Message- From: Justin Morgan [mailto:[EMAIL PROTECTED] Sent: Wednesday, April 06, 2005 10:20 AM To: Struts Users Mailing List Subject: RE: Session Idle I think Eain is saying that he has some operations that take a long time, and he wants to suspend the timeout counter during those operations. So suppose the timeout in web.xml is 5 minutes. One particular operation takes 10 minutes to complete. Do not expire session. However, if the user is idle when there is NOT a long process running, expire after 5 minutes. Is that what you meant, Eain? -Justin -Original Message- From: Fogleson, Allen [mailto:[EMAIL PROTECTED] Sent: Tuesday, April 05, 2005 8:57 PM To: Struts Users Mailing List Subject: RE: Session Idle That is exactly how the session timeout works. If the user is idle (i.e has not submitted a request in X time) then it is timed out (assuming X is the timeout) otherwise a request acts sort of as a renew this session for X more minutes Al -Original Message- From: Eain Mat [mailto:[EMAIL PROTECTED] Sent: Tuesday, April 05, 2005 7:32 PM To: Struts Users Mailing List Subject: Re: Session Idle if i invalidate the session, everything will be destory in the session. I still want the session to keep alive when user is in the middle of their processing operation even the session-timeout is passed. I only want to timeout their session, if they are not doing anything. Eain mat Martin Gainty wrote: --web.xml contents-- 5 then trap on the invalidate method for your HttpSession object Makes sense??? Martin- - Original Message - From: Eain Mat To: Sent: Tuesday, April 05, 2005 7:44 PM Subject: Session Idle What is the simplest way to track the session idle? We cannot use session-timeout in web.xml because there may be leftover operation that is needed to process. Eain Mat - 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
RE: [OT] Open source paginator
There are lots of them: http://displaytag.sf.net http://valuelist.sf.net http://jsptags.com/tags/navigation/pager/pager-taglib-2.0.html http://jakarta.apache.org/taglibs/sandbox/doc/datagrid-doc/intro.html and some useful articles: http://raibledesigns.com/page/rd?anchor=there_s_a_new_sorting http://kulkarni_ash.tripod.com/howto/jsptaglib-howto.html These packages all work the same: they take the entire result set, hold it in session memory, and page through it. If you have a million-row result set, this approach won't work. You'll need to make a trip to the database whenever the user wants a new page. I'm working on doing this right now. Wiebe -Original Message- From: N G [mailto:[EMAIL PROTECTED] Sent: Thursday, April 07, 2005 12:31 PM To: Struts-user Subject: [OT] Open source paginator Does anyone know of some open source paginator package out there? Something generic enough that you could stick collections into and it would paginate it for you based on some criteria and expose methods to nextPage(), previousPage() and stuff like that. Thanks, NG. - 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: [OT] Open source paginator
I am custom developing it for my current project. Wiebe -Original Message- From: N G [mailto:[EMAIL PROTECTED] Sent: Thursday, April 07, 2005 3:27 PM To: Wiebe de Jong Subject: Re: [OT] Open source paginator You mean you're working an on open source paginator that is similar to the ones you mentioned, just goes to the persistence layer for the next page or are you developing something custom to your project only? Thanks, NG. On Apr 7, 2005 6:13 PM, Wiebe de Jong [EMAIL PROTECTED] wrote: There are lots of them: http://displaytag.sf.net http://valuelist.sf.net http://jsptags.com/tags/navigation/pager/pager-taglib-2.0.html http://jakarta.apache.org/taglibs/sandbox/doc/datagrid-doc/intro.html and some useful articles: http://raibledesigns.com/page/rd?anchor=there_s_a_new_sorting http://kulkarni_ash.tripod.com/howto/jsptaglib-howto.html These packages all work the same: they take the entire result set, hold it in session memory, and page through it. If you have a million-row result set, this approach won't work. You'll need to make a trip to the database whenever the user wants a new page. I'm working on doing this right now. Wiebe -Original Message- From: N G [mailto:[EMAIL PROTECTED] Sent: Thursday, April 07, 2005 12:31 PM To: Struts-user Subject: [OT] Open source paginator Does anyone know of some open source paginator package out there? Something generic enough that you could stick collections into and it would paginate it for you based on some criteria and expose methods to nextPage(), previousPage() and stuff like that. Thanks, NG. - 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: Session Idle
Is it possible to create a listener for the session timeout event? This listener would check to see if there is an operation in progress. If there is, reset the timeout counter. If not, let the session expire. Wiebe -Original Message- From: Justin Morgan [mailto:[EMAIL PROTECTED] Sent: Wednesday, April 06, 2005 10:20 AM To: Struts Users Mailing List Subject: RE: Session Idle I think Eain is saying that he has some operations that take a long time, and he wants to suspend the timeout counter during those operations. So suppose the timeout in web.xml is 5 minutes. One particular operation takes 10 minutes to complete. Do not expire session. However, if the user is idle when there is NOT a long process running, expire after 5 minutes. Is that what you meant, Eain? -Justin -Original Message- From: Fogleson, Allen [mailto:[EMAIL PROTECTED] Sent: Tuesday, April 05, 2005 8:57 PM To: Struts Users Mailing List Subject: RE: Session Idle That is exactly how the session timeout works. If the user is idle (i.e has not submitted a request in X time) then it is timed out (assuming X is the timeout) otherwise a request acts sort of as a renew this session for X more minutes Al -Original Message- From: Eain Mat [mailto:[EMAIL PROTECTED] Sent: Tuesday, April 05, 2005 7:32 PM To: Struts Users Mailing List Subject: Re: Session Idle if i invalidate the session, everything will be destory in the session. I still want the session to keep alive when user is in the middle of their processing operation even the session-timeout is passed. I only want to timeout their session, if they are not doing anything. Eain mat Martin Gainty [EMAIL PROTECTED] wrote: --web.xml contents-- 5 then trap on the invalidate method for your HttpSession object Makes sense??? Martin- - Original Message - From: Eain Mat To: Sent: Tuesday, April 05, 2005 7:44 PM Subject: Session Idle What is the simplest way to track the session idle? We cannot use session-timeout in web.xml because there may be leftover operation that is needed to process. Eain Mat - 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: Session Idle
Actually, this is similar to something that happens when I do my online banking at www.bmo.com Their page has a timer in it that creates a popup notifying you that the session is about to expire. If you click the button in the popup, the page does a refresh and resets the timer. Wiebe -Original Message- From: Leon Rosenberg [mailto:[EMAIL PROTECTED] Sent: Wednesday, April 06, 2005 11:11 AM To: 'Struts Users Mailing List' Subject: re: Session Idle I would solve it by adding a 1 minute refresh in a hidden frame in your page to a action which just delivers next refresh header. As long as the user has the page open, the session will never expire. After he closes the browser, the session expires normally. Regards Leon -Ursprüngliche Nachricht- Von: Wiebe de Jong [mailto:[EMAIL PROTECTED] Gesendet: Mittwoch, 6. April 2005 20:02 An: 'Struts Users Mailing List' Betreff: RE: Session Idle Is it possible to create a listener for the session timeout event? This listener would check to see if there is an operation in progress. If there is, reset the timeout counter. If not, let the session expire. Wiebe -Original Message- From: Justin Morgan [mailto:[EMAIL PROTECTED] Sent: Wednesday, April 06, 2005 10:20 AM To: Struts Users Mailing List Subject: RE: Session Idle I think Eain is saying that he has some operations that take a long time, and he wants to suspend the timeout counter during those operations. So suppose the timeout in web.xml is 5 minutes. One particular operation takes 10 minutes to complete. Do not expire session. However, if the user is idle when there is NOT a long process running, expire after 5 minutes. Is that what you meant, Eain? -Justin -Original Message- From: Fogleson, Allen [mailto:[EMAIL PROTECTED] Sent: Tuesday, April 05, 2005 8:57 PM To: Struts Users Mailing List Subject: RE: Session Idle That is exactly how the session timeout works. If the user is idle (i.e has not submitted a request in X time) then it is timed out (assuming X is the timeout) otherwise a request acts sort of as a renew this session for X more minutes Al -Original Message- From: Eain Mat [mailto:[EMAIL PROTECTED] Sent: Tuesday, April 05, 2005 7:32 PM To: Struts Users Mailing List Subject: Re: Session Idle if i invalidate the session, everything will be destory in the session. I still want the session to keep alive when user is in the middle of their processing operation even the session-timeout is passed. I only want to timeout their session, if they are not doing anything. Eain mat Martin Gainty [EMAIL PROTECTED] wrote: --web.xml contents-- 5 then trap on the invalidate method for your HttpSession object Makes sense??? Martin- - Original Message - From: Eain Mat To: Sent: Tuesday, April 05, 2005 7:44 PM Subject: Session Idle What is the simplest way to track the session idle? We cannot use session-timeout in web.xml because there may be leftover operation that is needed to process. Eain Mat - 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] - 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: Session Idle
If you want the page to do refreshes while waiting for the operation to complete, why not implement a progress bar? http://www.onjava.com/pub/a/onjava/2003/06/11/jsp_progressbars.html Here, each time the page refreshes, a progress bar is updated, showing the user how the long-running operation is going. Wiebe -Original Message- From: Leon Rosenberg [mailto:[EMAIL PROTECTED] Sent: Wednesday, April 06, 2005 11:11 AM To: 'Struts Users Mailing List' Subject: re: Session Idle I would solve it by adding a 1 minute refresh in a hidden frame in your page to a action which just delivers next refresh header. As long as the user has the page open, the session will never expire. After he closes the browser, the session expires normally. Regards Leon -Ursprüngliche Nachricht- Von: Wiebe de Jong [mailto:[EMAIL PROTECTED] Gesendet: Mittwoch, 6. April 2005 20:02 An: 'Struts Users Mailing List' Betreff: RE: Session Idle Is it possible to create a listener for the session timeout event? This listener would check to see if there is an operation in progress. If there is, reset the timeout counter. If not, let the session expire. Wiebe -Original Message- From: Justin Morgan [mailto:[EMAIL PROTECTED] Sent: Wednesday, April 06, 2005 10:20 AM To: Struts Users Mailing List Subject: RE: Session Idle I think Eain is saying that he has some operations that take a long time, and he wants to suspend the timeout counter during those operations. So suppose the timeout in web.xml is 5 minutes. One particular operation takes 10 minutes to complete. Do not expire session. However, if the user is idle when there is NOT a long process running, expire after 5 minutes. Is that what you meant, Eain? -Justin -Original Message- From: Fogleson, Allen [mailto:[EMAIL PROTECTED] Sent: Tuesday, April 05, 2005 8:57 PM To: Struts Users Mailing List Subject: RE: Session Idle That is exactly how the session timeout works. If the user is idle (i.e has not submitted a request in X time) then it is timed out (assuming X is the timeout) otherwise a request acts sort of as a renew this session for X more minutes Al -Original Message- From: Eain Mat [mailto:[EMAIL PROTECTED] Sent: Tuesday, April 05, 2005 7:32 PM To: Struts Users Mailing List Subject: Re: Session Idle if i invalidate the session, everything will be destory in the session. I still want the session to keep alive when user is in the middle of their processing operation even the session-timeout is passed. I only want to timeout their session, if they are not doing anything. Eain mat Martin Gainty [EMAIL PROTECTED] wrote: --web.xml contents-- 5 then trap on the invalidate method for your HttpSession object Makes sense??? Martin- - Original Message - From: Eain Mat To: Sent: Tuesday, April 05, 2005 7:44 PM Subject: Session Idle What is the simplest way to track the session idle? We cannot use session-timeout in web.xml because there may be leftover operation that is needed to process. Eain Mat - 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] - 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: Popup Windows with Struts Actions
Like this: html:link href=# onclick=window.open('findAccountCSV.do','csv')CSV/html:link Add the javascript to the onclick event. The first parameter is the action and the second is the window name. There are some additional optional parameters that you can add to control the window, etc. Wiebe de Jong -Original Message- From: Dakota Jack [mailto:[EMAIL PROTECTED] Sent: Tuesday, April 05, 2005 10:42 AM To: Frank W. Zammetti Cc: Struts Users Mailing List Subject: Re: Popup Windows with Struts Actions No, have the popup url from the page be a struts action -- popup.do. Jack On Apr 5, 2005 10:37 AM, Frank W. Zammetti [EMAIL PROTECTED] wrote: Not sure what you mean... You mean open the popup from WITHIN an Action? -- Frank W. Zammetti Founder and Chief Software Architect Omnytex Technologies http://www.omnytex.com On Tue, April 5, 2005 1:27 pm, Dakota Jack said: Anyone have some code on using JavaScript to open and close popup windows with a Struts Action? Thanks. Jack -- You can lead a horse to water but you cannot make it float on its back. ~Dakota Jack~ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- You can lead a horse to water but you cannot make it float on its back. ~Dakota Jack~ - 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: Popup Windows with Struts Actions
The onlick=window.open ... portion is the javascript onclick event. Just use the snippet as presented, changing the two parameters and the link name to suit your needs. Wiebe -Original Message- From: Barnett, Brian W. [mailto:[EMAIL PROTECTED] Sent: Tuesday, April 05, 2005 1:47 PM To: 'Struts Users Mailing List' Subject: RE: Popup Windows with Struts Actions Sorry, I'm a javascript beginner. Can you provide a sample javascript onclick event? Thanks... -Original Message- From: Wiebe de Jong [mailto:[EMAIL PROTECTED] Sent: Tuesday, April 05, 2005 11:54 AM To: 'Struts Users Mailing List' Subject: RE: Popup Windows with Struts Actions Like this: html:link href=# onclick=window.open('findAccountCSV.do','csv')CSV/html:link Add the javascript to the onclick event. The first parameter is the action and the second is the window name. There are some additional optional parameters that you can add to control the window, etc. Wiebe de Jong -Original Message- From: Dakota Jack [mailto:[EMAIL PROTECTED] Sent: Tuesday, April 05, 2005 10:42 AM To: Frank W. Zammetti Cc: Struts Users Mailing List Subject: Re: Popup Windows with Struts Actions No, have the popup url from the page be a struts action -- popup.do. Jack On Apr 5, 2005 10:37 AM, Frank W. Zammetti [EMAIL PROTECTED] wrote: Not sure what you mean... You mean open the popup from WITHIN an Action? -- Frank W. Zammetti Founder and Chief Software Architect Omnytex Technologies http://www.omnytex.com On Tue, April 5, 2005 1:27 pm, Dakota Jack said: Anyone have some code on using JavaScript to open and close popup windows with a Struts Action? Thanks. Jack -- You can lead a horse to water but you cannot make it float on its back. ~Dakota Jack~ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- You can lead a horse to water but you cannot make it float on its back. ~Dakota Jack~ - 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] This email may contain confidential material. If you were not an intended recipient, Please notify the sender and delete all copies. We may monitor email to and from our network. - 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: [OT] Poll: Does Dakota Jack have a job? :)
I am married with two kids and a full-time job. That should tell you pretty clearly that I need and take ANY time I can away from those things. Sad as it sounds, arguing with Jack and otherwise interacting with you folks is a nice diversion from life :) I second that motion. I'm married with three kids, two dogs and I work from home. Diversions are needed. Wiebe de Jong - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: PlugIn and the base URL
Hey David, that is a great idea. Let me build on it a bit... When the .war file is deployed, the baseURL property will be blank. When the application starts up, it will check this property. If the property is blank, the app will be in 'inactive' state and the only menu item presented to the user is 'Activate'. The action for 'Activate' will read the URL from the response and set the property. The application is now in the 'active' state and operating normally. The next time the application starts up and checks the property, it is not blank so the app is 'active'. The activate action could do a couple of other things as well, such as record the activation time (if you need it for billing) or fire off a message to a licensing or billing server (for hosted apps, etc). Wiebe de Jong -Original Message- From: David G. Friedman [mailto:[EMAIL PROTECTED] Sent: Wednesday, January 26, 2005 10:33 AM To: Struts Users Mailing List Subject: RE: PlugIn and the base URL A Devil's Advocate says: I agree with the theory that the webapp Context name within the application server /myapp should be available to the servlet but not the host/port/etc. Why? Imagine you work on a project like mine where you are using virtual host capability to map various paths on various virtual hosts to your one Java webapp (one instance for all clients). The startup information you would obtain, in that situation, on the host and server port would be wrong. Only the request object would have the correct data. With that in mind, the Devil's Advocate suggests: Can you provide a plug-in to check a file for the information you require? On first run, there would be no data so let them, upon first installation, run an action. That action could see if said file exists and, if not, put it's url information (from the request) into that file (and this one time into that class's class instance data). If the file exists, the action could politely return a page explaining the requested function is not available (to prevent someone from potentially screwing things up by running that action again). Regards, David, the devil's advocate today. -Original Message- From: Martin Wegner [mailto:[EMAIL PROTECTED] Sent: Wednesday, January 26, 2005 12:53 PM To: Struts Users Mailing List Subject: RE: PlugIn and the base URL Agreed. That approach works more often than not. Except in this case. The client of the WS does indeed use the URL that is sent back. That is part of the overal protocol. So it has to be a valid URL that reaches the WS inside of my Struts app. One could argue that the real problem is within Axis, which does not provide any HTTP details to the WS call dispatcher. If I had access to that info I could stuff it into the WS DOM response and not bother with the Struts PlugIn. Sigh. --Marty --- Varley, Roger [EMAIL PROTECTED] wrote: The WS response has to contain the URL that was used to access the WS. This is a requirement of the XML Schema that defines the WS response payload. I have no control over this. I know this might be stupid, but whenever I see an odd requirement like this my first experiment is to see what happens if I pass something that is a valid URL but doesn't actually point anywhere. In this way you could simply hard-code a string value into your plugin. It wouldn't be the first time I've come across a mandatory requirement that doesn't actually do anything :) Regards Roger - 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: [Very OT] Hypothetical challege
The simple answer is to store all your session data in a database, with a cookie value as the key. When the client connects, get the cookie value, read the session data from the database, do your stuff, update the database, and respond to the user. This will create a permanent session, which will survive shutting down the browser, web server, app server, and whatever else. The session will only end when the user explicitly logs out and terminates the session. If you don't like the performance hit of going to the database every time, then add a plugin. When the application starts, the plugin will read all the sessions from the database into memory. When the application ends, the plugin would write out all the sessions to the database. Wiebe de Jong -Original Message- From: Chaikin, Yaakov Y. [mailto:[EMAIL PROTECTED] Sent: Wednesday, January 26, 2005 12:37 PM To: 'Struts Users Mailing List' Subject: [Very OT] Hypothetical challege Hi, This is a hypothetical question, but it's interesting to me if anyone can come up with a solution and what that solution would be. A few facts and requirements: 1) Suppose you have 2 machines. One must serve as your web server and the other must serve as your EJB server. 2) Suppose you must keep track of some sort of session data for each client. How you store the session data is flexible to a point... You want to take advantage of stateful sessions for whatever reason (maybe your EJB server has more resources or something like that). 3) You obviously have a remote reference to your stateful session EJBObject in your web tier. 4) For whatever reason, you anticipate that you will want to restart your web server now and then while there will be some moderate traffic to it going on. Yet, you don't want to make all the clients lose their state. 5) You can use a cookie if you want to remember which client was which when the server restarts. 6) You have the option of storing the remote references to you stateful session EJBObject by getting EJBObject.getHandle() and storing it on the web server machine in a serialized form. 7) No, you can not buy another web server and cluster them! Let's say there is no more money left. How do you catch server/web app shutdown event with no non-portable code, so you can go through all your sessions and save the remote references to your stateful beans on the EJB tier on hard disk so when the server starts back up you would be able to restart the entire app without making the clients lose their state? Yes, this way of a contrived situation, but I am just very interested in how this could be accomplished. Anyone? Thanks, Yaakov. - 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: R: Session Strategy (here's a filter)
This will detect that a session has already expired, but I think that is not what he wants. I think Jack is looking for something to run WHEN the session expires, similar to the destroy() method in a plugin that runs when the application stops. Wiebe de Jong -Original Message- From: Amleto Di Salle [mailto:[EMAIL PROTECTED] Sent: Thursday, January 20, 2005 9:41 AM To: 'Struts Users Mailing List'; 'Dakota Jack' Subject: R: R: Session Strategy (here's a filter) Hello Jack, you detect a session expiration using the getSession( false ) method. If you use false, the session is not created if there is no current session. In fact, in a previous e-mail that I sent, there was my Filter which used the getSession method. All it works if the session expires, and you have to set in some way the web container in order to delete the session object. So, I don't understand what do you mean I am not looking to create a timeout but to detect a session expiration, so that the user can be redirected to a page. BR /Amleto -Messaggio originale- Da: Dakota Jack [mailto:[EMAIL PROTECTED] Inviato: giovedì 20 gennaio 2005 18.03 A: Amleto Di Salle Cc: Struts Users Mailing List Oggetto: Re: R: Session Strategy (here's a filter) Hello, Amleto, I am not looking to create a timeout but to detect a session expiration, so that the user can be redirected to a page. I am not, that is, looking to get rid of people but looking to help people that have their session expired. Jack On Thu, 20 Jan 2005 17:42:55 +0100, Amleto Di Salle [EMAIL PROTECTED] wrote: You can do this using request.getSession( false ) (false doesn't create the session) and use the following in the tag in the web.xml. session-config session-timeout30/session-timeout /session-config 30 are minutes You can set the session-timeout also in the web container (see tomcat documentation). BR /Amleto -Messaggio originale- Da: Dakota Jack [mailto:[EMAIL PROTECTED] Inviato: giovedì 20 gennaio 2005 17.08 A: Struts Users Mailing List Oggetto: Re: Session Strategy (here's a filter) I was looking for a filter that detected sessions that had expired and rerouted the request to a login or other appropriate page. Jack On Thu, 20 Jan 2005 10:53:09 -0500, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote: Here's the filter I use. It contains some logging that you can choose to ignore and I also set some session attributes that I use for navigation AFTER the re-login, to get the user back to the page they were on or as near as possible, given only their first/last name and password. I also included the configuration I added to my web.xml file to activate the filter for all actions beginning with /secure/ Then, I added /secure/ to all actions that should use the filter. I did this for all actions except the following, for which it would have introduced a pretty obvious logic error: login, register, and an action I use to direct the user back to the page they were on before the timeout. Here's the filter ** * /*** ** *** * * This class provides a servlet filter ensure that each request is coming from * an authenticated user. It also logs each servlet invocation. * ** **/ package schs82; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; import org.apache.struts.action.*; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import java.text.DateFormat; import schs82.*; public final class AuthenticationFilter implements Filter { private Log logger; public void init(javax.servlet.FilterConfig filterConfig) throws javax.servlet.ServletException { logger = LogFactory.getLog(SCHS82); } public void doFilter(javax.servlet.ServletRequest request, javax.servlet.ServletResponse response, javax.servlet.FilterChain filterChain) throws java.io.IOException, javax.servlet.ServletException { HttpServletRequest req = (HttpServletRequest)request; HttpServletResponse resp = (HttpServletResponse)response; HttpSession session = req.getSession(); String firstName = (String)session.getAttribute(firstName); String lastName = (String)session.getAttribute(lastName); String password = (String)session.getAttribute(password
RE: Sending Binary Files from Action
Hey Richard, Are you upgrading your Struts to 1.2.6 to make use of the DownloadAction, or do you need something that works with your current Struts version? Wiebe -Original Message- From: Richard [mailto:[EMAIL PROTECTED] Sent: Friday, November 26, 2004 12:55 AM To: Struts Users Mailing List Subject: Re: Sending Binary Files from Action Hi Niall, Thank you very much. The thing is I have found a sample application that uses the DownloadAction. Discussion is at http://www.mail-archive.com/dev@struts.apache.org/msg04600.html while the source codes are at http://www.omnytex.com/downloadapp.zip. I think I have a working version now and will stick to it. Again thank you very much. Richard On Fri, 26 Nov 2004 08:06:46 -, Niall Pemberton [EMAIL PROTECTED] wrote: Rather than answer you here, I've created a page on the wiki with examples... http://wiki.apache.org/struts/StrutsFileDownload I haven't actually used DownloadAction myself - but I am doing the same sort of thing in my application. Niall - Original Message - From: Richard [EMAIL PROTECTED] To: Struts Users Mailing List [EMAIL PROTECTED] Sent: Friday, November 26, 2004 5:40 AM Subject: Re: Sending Binary Files from Action Hi Niall, Forgive but im a newbie. I dont know how I can use this. Definitely I will need to change my struts jar files. But do I extend this action or use it statically. What method do I use? Thanks Richard On Fri, 26 Nov 2004 05:32:09 -, Niall Pemberton [EMAIL PROTECTED] wrote: Theres a new DownloadAction in Struts 1.2.6: http://struts.apache.org/api/org/apache/struts/actions/DownloadAction.html Niall - Original Message - From: Richard [EMAIL PROTECTED] To: Struts Users Mailing List [EMAIL PROTECTED] Sent: Friday, November 26, 2004 5:18 AM Subject: Sending Binary Files from Action Hi Guys, I have created an expiring download link ( sent to users ) throiugh the use of tokens and actions. Now I have not the slightest idea how am I going to send the file to the user inside my actions. Can I use forwards over this? please help. Thanks Richard - 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] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: Multibox deselection problem
This is a problem with HTTP: when all the checkboxes are deselected, the browser doesn't send anything back, so you get the default of what you started with. To solve this problem you must ensure that at least one box is always selected. I solved this problem by creating an additional checkbox that is hidden, read-only and selected. This will ensure that the browser sends something back. String[] defaultEntities = {A, B, C, D, filler}; tr style=display:none;tdhtml:multibox property=marketing value=filler//td/tr Wiebe -Original Message- From: Olivier Croisier [mailto:[EMAIL PROTECTED] Sent: Friday, November 12, 2004 6:47 AM To: [EMAIL PROTECTED] Subject: Multibox deselection problem Hi ! I have a problem with the Multibox behaviour. I have checked the online doc but nothing helped me so far... Here is my problem : My app workflow is : prepareImportAction.do - Import.jsp - processImportAction.do In the prepareImportAction.do, I initialize the entities var (of type String[], in session scope), so that the checkboxes are checked by default when the jsp page is displayed : String[] defaultEntities = {A, B, C, D}; myform.set(entities, defaultEntities); In the jsp page, I have a set of : html:multibox property=entities value=A/ html:multibox property=entities value=B/ html:multibox property=entities value=C/ html:multibox property=entities value=D/ I also have a small javascript that allows the user to select or deselect all checkboxes in one click : function checkAll(field) { var i; for (i=0;ifield.length;i++) { field[i].checked=true; } } (nearly the same for de-selecting all checkboxes) Now here is my problem. When I de-select all the checkboxes in my jsp page, by hand or by javascript, my processImport.do receives a String[] array containing the entities that were defined in preparaImport.do as default, instead of an empty array. This only happens only when all entities are deselected : if a single one is selected, I get the desired behaviour. May you help me to understand where I am wrong and why it doesn't work please? Olivier Croisier -- CROISIER Olivier Software Engineer Thales IS - ANS [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: AW: Paged data output
What database and version are you using? Paging can be accomplished in different ways in different databases. In some cases you can use a cursor. Other times you can't. In my current application, I am using an older version of PostgreSQL so I am constrained to using their non-standard LIMIT clause. Wiebe -Original Message- From: Yaroslav Novytskyy [mailto:[EMAIL PROTECTED] Sent: Wednesday, November 10, 2004 6:51 AM To: Struts Users Mailing List Subject: Re: AW: Paged data output Hi! Yes, I think that paging in DB queries is what I need. (I don't whant to select all the data from the table) That's why I'm asking about working examples. I have taken a look at Displaytag and it is realy nice, but this is not exactly what I need. iBatis is a closer solution, but it is needed to take a closer look. Can you please show me a liitle example or write a small step-by-step ref to get what I need. Thanks Yaroslav Novytskyy - Original Message - From: Vic (Vinny) Cekvenich [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Wednesday, November 10, 2004 3:34 PM Subject: Re: AW: Paged data output Also iBatis DAO w/ Displaytag. BUT I allways do paginiation in DB. For example select limit ofset. Depends of what you think lots of products are (and if you also have lots of users) .V Stahlhut, Axel wrote: Hi Yaroslav, try the displaytag tag library (http://displaytag.sourceforge.net/). Maybe it is useful. Regards Axel -Ursprüngliche Nachricht- Von: Yaroslav Novytskyy [mailto:[EMAIL PROTECTED] Gesendet: Mittwoch, 10. November 2004 12:55 An: [EMAIL PROTECTED] Betreff: Paged data output Hi all! Can anyone explain (or point to an example) of how to output data on JSP by pages with page navigation. Example: I have a products DB table with _lots_ of products. then (as far as I could understand) I should 1. create a DAO factory 2. create a ProductDAO class 3. create a Product bean-type class 4. in ProductDAO create a method listProducts in which a) make a quiery like SELECT * FROM Products b) for every row create a Product object and add to a list c) return the list to action 5. in action.execute save the list in request scope 6. redirect to JSPwith the following logic: logic:iterate id=item name=Articles bean:write name=item property=ID / bean:write name=item property=Name / /logic:iterate Question: If the described abow is correct, how to make paged output. So only 10 products are displayed and links to 2nd, 3rd ... pages Thanks Yaroslav Novytskyy - 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]
[OT] RE: A new paradigm of Struts development
Ooohhh, Let's start a rumor. Craig is going over to Microsoft... It must be true 'cause I heard it on the list. -Original Message- From: Joe Germuska [mailto:[EMAIL PROTECTED] Sent: Tuesday, November 09, 2004 3:41 PM To: Struts Users Mailing List Subject: Re: A new paradigm of Struts development Sorry for going on so long. Nonsense. That's why we have *discussion* lists. I may have misunderstood, and I am at a disadvantage because I am still trying to get a good idea of what JSF is all about, but I thought that Craig saw any merger between Struts and JSF as a temporary thing which was fundamentally not a long run arrangement. Hm. Maybe; I don't recall that. The nice thing about the Apache license is that the code will live as long as you want it to. So the arrangement is as 'long-run' as the community interested in supporting it. Even if Apache revoked Struts' charter and Craig went to go work for Microsoft, the code would still be there, under a license which empowers you to take it and do whatever you need to with it. I don't understand your idea of a view controller, Joe. The view controller is a controller which is not something different from the Struts controller is it? The controller, from my perspective needs to be decoupled from the view. A view controller is just another way of saying, if I understand, that the view and the controller will be coupled. Only as much as the model and the controller are coupled right now. It's more of a logical partitioning of control responsibilities into inbound and outbound. Some things which need to happen before control is passed to the view are common based on the destination view, not the request path. At my job, the ability to hook some kind of control logic to the view has proven a nice way to organize things so that page preparation and form-prefilling behavior is shared and separate from form/request processing behavior. For a lot of things, the split isn't so straightforward, but we've come to like the basic model. Ultimately, of course, there has to be some interface between the view and the controller. I would wish there were an interface that could adapt the Struts architecture with the JSF sort of view intricacies. However, I don't see that the event-based, page-based, JSF approach can do that. And here's where I'm waiting to either have more time to really understand it -- I've read all the intro to JSF articles, but haven't spent time coding with it -- or for someone to make more specific arguments that say I need to do this, and here's why JSF makes it hard or impossible. Or even just here's a way that I can do this, which I need to do, without all that JSF silliness -- isn't this good enough, and less complicated? Anyone...? -- Joe Germuska [EMAIL PROTECTED] http://blog.germuska.com In fact, when I die, if I don't hear 'A Love Supreme,' I'll turn back; I'll know I'm in the wrong place. - Carlos Santana - 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: Need Ideas for This Puzzle
Here's my idea: Create a bean that has multiple Boolean fields, with each corresponding to a checkbox you might want to display. In the action that loads data for this page, process the user's role and set the bean's Boolean values accordingly. Store the bean so that the jsp can read it. For all the checkboxes, the jsp will read the bean and display only the checkboxes that have a corresponding true value. In the action that saves the data from this page, process only those checkboxes that were displayed. Wiebe -Original Message- From: Caroline Jen [mailto:[EMAIL PROTECTED] Sent: Friday, October 22, 2004 9:03 AM To: [EMAIL PROTECTED] Subject: Need Ideas for This Puzzle The puzzle relates to displaying check boxes (checkbox or multibox). What I have are members who belong to professional groups and sub-groups. E.g., Group A with sub-groups A-1, A-2, A-3, A-4. Group B with sub-groups B-1, B-2, B-3 Group C with sub-groups C-1, C-2, C-3, C-4, C-5, C-6 etc. web site users make multiple selections among groups. And all members in those groups will receive an e-mail message. I can display a check box for every single sub-group. And give each group a select all check box. All I have to take care are the checked sub-groups. The challege comes as the roles of the web site users are introduced. According to the role of the web site user, I have to display certain groups (not all the groups) and certain sub-groups (not all sub-groups within a group) to him/her. How do I disply groups and their sub-groups under such a condition? __ Do you Yahoo!? Take Yahoo! Mail with you! Get it on your mobile phone. http://mobile.yahoo.com/maildemo - 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: Need Ideas for This Puzzle
Keeping the unused fields around as hidden fields is a good idea. It will keep your 'select all' javascript from getting complicated. Just make sure that your action doesn't process any of the fields that were made hidden, because hackers could modify those hidden fields manually before sending back the response. Wiebe -Original Message- From: Caroline Jen [mailto:[EMAIL PROTECTED] Sent: Friday, October 22, 2004 10:59 AM To: Struts Users Mailing List Subject: RE: Need Ideas for This Puzzle What about something like: % boolean checked = isChecked(a); // check if the value should be checked by default if(showCheckbox(user, a)) { // check if, for this user, the checkbox should be visible % input type=checkbox name=a value=a %= checked ?checked: % % } else { // show disabled checkbox (or leave that out to show nothing...) % input type=checkbox name=noname %= checked ? checked : % disabled=diabled / % if(checked) { // don't need hidden value if default is unchecked % input type=hidden name=a value=a % } } % --- Wiebe de Jong [EMAIL PROTECTED] wrote: Here's my idea: Create a bean that has multiple Boolean fields, with each corresponding to a checkbox you might want to display. In the action that loads data for this page, process the user's role and set the bean's Boolean values accordingly. Store the bean so that the jsp can read it. For all the checkboxes, the jsp will read the bean and display only the checkboxes that have a corresponding true value. In the action that saves the data from this page, process only those checkboxes that were displayed. Wiebe -Original Message- From: Caroline Jen [mailto:[EMAIL PROTECTED] Sent: Friday, October 22, 2004 9:03 AM To: [EMAIL PROTECTED] Subject: Need Ideas for This Puzzle The puzzle relates to displaying check boxes (checkbox or multibox). What I have are members who belong to professional groups and sub-groups. E.g., Group A with sub-groups A-1, A-2, A-3, A-4. Group B with sub-groups B-1, B-2, B-3 Group C with sub-groups C-1, C-2, C-3, C-4, C-5, C-6 etc. web site users make multiple selections among groups. And all members in those groups will receive an e-mail message. I can display a check box for every single sub-group. And give each group a select all check box. All I have to take care are the checked sub-groups. The challege comes as the roles of the web site users are introduced. According to the role of the web site user, I have to display certain groups (not all the groups) and certain sub-groups (not all sub-groups within a group) to him/her. How do I disply groups and their sub-groups under such a condition? __ Do you Yahoo!? Take Yahoo! Mail with you! Get it on your mobile phone. http://mobile.yahoo.com/maildemo - 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] ___ Do you Yahoo!? Declare Yourself - Register online to vote today! http://vote.yahoo.com - 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: sending/maintaning a download link
If you don't have access to a database, then creating some kind of in-memory database and storing it in the servlet context is a good alternative. Use a Struts plugin for setup and cleanup of whatever you use. One thing you will have to be careful of is using up all your memory. If you are storing token/timestamp/status for a large number of users, it will add up. Wiebe -Original Message- From: Andrew Hill [mailto:[EMAIL PROTECTED] Sent: Wednesday, October 13, 2004 8:23 PM To: Struts Users Mailing List Subject: Re: sending/maintaning a download link It wouldnt survive a server restart, but this may well be acceptable if you dont expect the server to restart very often and your token expiry is only a day or two and its easy to get another token if needs be. Im not sure what the deal is with stuff added to servlet context after startup in a clustered environment however. If your in a cluster you would need to check up on that in the docs as it may not be available to all servers in the cluster? Richard wrote: Hi Wiebe, What if im not going to use any database? can I just store this in the servlet context? Thanks Richard On Wed, 13 Oct 2004 10:12:38 -0700, Wiebe de Jong [EMAIL PROTECTED] wrote: The only way to make a link go away is to make it dynamic. That means that the link you email will have to be to an action that returns the file. There have been quite a few threads recently on this mailing list about how to get actions to return files, including .pdf and .csv, so I won't cover that here. Here is a list of steps for how I would go about implementing this feature: 1 - generate a unique token and store it in the database with a timestamp=now() and status=valid. 2 - add this token to the url you send in the email: http://www.mycompany.com/myapp/download.do?token=123abc 3 - when the user calls the action via the supplied url, the action checks the database to see if the token is still valid. 4 - if token is valid, send the file, and then invalidate the token so it can't be used again. (status=used) 5 - if token not valid, display a message to the user telling them that the link has either expired or already been used. 6 - have a background process run periodically (1 per day, every hour, whatever) that checks the timestamps in the database and expires tokens if the timestamp is more than 24 hours old. (status=expired) The background process can be run via Quartz, which was also covered recently in this list. Wiebe de Jong -Original Message- From: Richard [mailto:[EMAIL PROTECTED] Sent: Wednesday, October 13, 2004 2:14 AM To: Struts Users Mailing List Subject: sending/maintaning a download link hi guys, how do i do this in struts? i want to send a download link ( via email - resolved ) to a newly registered user and that download link will expire after 24hrs. is there and apache project for this? please help thanks in advance richard - 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] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: sending/maintaning a download link
The only way to make a link go away is to make it dynamic. That means that the link you email will have to be to an action that returns the file. There have been quite a few threads recently on this mailing list about how to get actions to return files, including .pdf and .csv, so I won't cover that here. Here is a list of steps for how I would go about implementing this feature: 1 - generate a unique token and store it in the database with a timestamp=now() and status=valid. 2 - add this token to the url you send in the email: http://www.mycompany.com/myapp/download.do?token=123abc 3 - when the user calls the action via the supplied url, the action checks the database to see if the token is still valid. 4 - if token is valid, send the file, and then invalidate the token so it can't be used again. (status=used) 5 - if token not valid, display a message to the user telling them that the link has either expired or already been used. 6 - have a background process run periodically (1 per day, every hour, whatever) that checks the timestamps in the database and expires tokens if the timestamp is more than 24 hours old. (status=expired) The background process can be run via Quartz, which was also covered recently in this list. Wiebe de Jong -Original Message- From: Richard [mailto:[EMAIL PROTECTED] Sent: Wednesday, October 13, 2004 2:14 AM To: Struts Users Mailing List Subject: sending/maintaning a download link hi guys, how do i do this in struts? i want to send a download link ( via email - resolved ) to a newly registered user and that download link will expire after 24hrs. is there and apache project for this? please help thanks in advance richard - 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 and Quartz Scheduler
Starting Quartz from a servlet is not a good idea, use a Plugin instead. Reason: I am running on the JBoss application server, and the threads that Quartz creates on startup are attached to the app server when using the servlet method. Everything works fine, but when your webapp is shutdown, the threads keep going. The threads do not stop until the app server is stopped. So, if you do a hot deploy (just replace the .ear) of your application, which I do quite often during development, you'll end up with multiples of your jobs executing at the same time. Using plugin: If you use a Struts plugin, the threads stop when the webapp stops, even when doing hot deploys. In the plugin, the init() method gets called once when Struts starts up and the destroy() method gets called once when Struts shuts down. In my code below, I am called jobs implemented as stateless session beans. Your jobs might be implemented differently. Code: Web.xml: Nothing here because you are not using a servlet Struts-config.xml: Add this line: plug-in className=com.mycompany.myapp.QuartzPlugin / QuartzPlugin.java: package com.mycompany.myapp; import javax.servlet.*; import javax.servlet.http.*; import org.apache.commons.logging.*; import org.apache.struts.action.*; import org.apache.struts.config.*; import org.quartz.*; import org.quartz.impl.StdSchedulerFactory; import org.quartz.jobs.ee.ejb.EJBInvokerJob; import java.util.*; public class QuartzPlugin implements PlugIn { private static Log log = LogFactory.getLog(QuartzPlugin.class); private String ECOM_GROUP = eComGroup; Scheduler sched; public void init(ActionServlet servlet, ModuleConfig moduleConfig) throws ServletException { log.info(Quartz starting); // Scheduler sched; try { sched = StdSchedulerFactory.getDefaultScheduler(); sched.start(); } catch (Exception e) { log.info(Quartz Scheduler failed to initialize: + e.toString()); throw new ServletException(e); } log.info(Initializing jobs...); addJob(sched, Heartbeat, HeartbeatJob, execute, 0 0/15 * * * ?); // every 15 minutes addJob(sched, ExpiredTrial, ExpiredTrialJob, execute, 0 0 20/24 * * ?); // every day at 8pm log.debug(Quartz started); } private void addJob(Scheduler sched, String jobName, String jndiName, String methodName, String timing) { JobDetail jd = new JobDetail(jobName, ECOM_GROUP, EJBInvokerJob.class); jd.getJobDataMap().put(EJBInvokerJob.EJB_JNDI_NAME_KEY, jndiName); jd.getJobDataMap().put(EJBInvokerJob.EJB_METHOD_KEY, methodName); Object[] jdArgs = new Object[0]; jd.getJobDataMap().put(args, jdArgs); CronTrigger cronTrigger = new CronTrigger(jobName, ECOM_GROUP); try { cronTrigger.setCronExpression(timing); sched.scheduleJob(jd, cronTrigger); } catch (Exception e) { e.printStackTrace(); } } public void destroy() { log.info(Quartz stopping); try { sched.shutdown(); } catch (SchedulerException ex) { ex.printStackTrace(); } sched = null; } } I think I'll put this into my blog. Wiebe de Jong http://frontierj.blogspot.com/ -Original Message- From: Thomas Vogt [mailto:[EMAIL PROTECTED] Sent: Wednesday, September 29, 2004 10:08 PM To: Struts Users Mailing List Subject: AW: Struts and Quartz Scheduler You need a class to be executed as Job public final class BerechnungsJob implements Job { /* (Kein Javadoc) * @see org.quartz.Job#execute(org.quartz.JobExecutionContext) */ public void execute(JobExecutionContext context) throws JobExecutionException { ... } } and you need a servlet that looks like this to init the Job Trigger 32 /*** 33 * Die Klasse dient als Listener für den Servlet Container um den Timer im Hintergrund laufen zu lassen. 34 * 36 * @version Version 1.0 27.08.2004 37 */ 38 39 public class TimerServlet implements Servlet 40 { 41 42 /*** 43 * @see javax.servlet.Servlet#init(ServletConfig) 44 */ 45 public void init(ServletConfig arg0) throws ServletException 46 { 47 SchedulerFactory schedFact = new org.quartz.impl.StdSchedulerFactory(); 48 JobDetail jobDetail = new JobDetail(Calculation Timer, Calculation Timer, BerechnungsJob.class); 49 CronTrigger trigger = new CronTrigger(Calculation Timer, Calculation Timer); 50 51 try 52 { 53 trigger.setCronExpression(0 0/5 * * * ?); 54 Scheduler sched = schedFact.getScheduler(); 55 sched.start(); 56 sched.scheduleJob(jobDetail, trigger); 57 } 58 catch (Exception e) 59 { 60 e.printStackTrace(); 61 } 62 } 63 64 /*** 65 * @see javax.servlet.Servlet#getServletConfig() 66 */ 67 public
RE: RE: Struts and Quartz Scheduler
If you've not had any problems, that is good. Tomcat is probably taking care of the threads for you and stopping them. Using the plugin is still better because instead of relying on the app server to do your cleanup, you can take charge of it yourself. Wiebe -Original Message- From: Thomas Vogt [mailto:[EMAIL PROTECTED] Sent: Thursday, September 30, 2004 11:56 AM To: Struts Users Mailing List Subject: AW: RE: Struts and Quartz Scheduler Hmm never had any of the problems you mentioned with my app and I do WAR HOT reload quite often. I never experienced the behaviour you mentioned on my Tomcat 5 but maybe thats different for JBoss. But since you mentioned it I will change it in my app too, so it is compatible with JBoss too. Thanks for the tip ;) Thomas - Original-Nachricht Von: Struts Users Mailing List [EMAIL PROTECTED] An: 'Struts Users Mailing List' [EMAIL PROTECTED], 'Thomas Vogt' [EMAIL PROTECTED] Betreff: RE: Struts and Quartz Scheduler Datum: 30/09/04 20:26 Starting Quartz from a servlet is not a good idea, use a Plugin instead. Reason: I am running on the JBoss application server, and the threads that Quartz creates on startup are attached to the app server when using the servlet method. Everything works fine, but when your webapp is shutdown, the threads keep going. The threads do not stop until the app server is stopped. So, if you do a hot deploy (just replace the .ear) of your application, which I do quite often during development, you'll end up with multiples of your jobs executing at the same time. Using plugin: If you use a Struts plugin, the threads stop when the webapp stops, even when doing hot deploys. In the plugin, the init() method gets called once when Struts starts up and the destroy() method gets called once when Struts shuts down. In my code below, I am called jobs implemented as stateless session beans. Your jobs might be implemented differently. Code: Web.xml: Nothing here because you are not using a servlet Struts-config.xml: Add this line: lt;plug-in className=quot;com.mycompany.myapp.QuartzPluginquot; /gt; QuartzPlugin.java: package com.mycompany.myapp; import javax.servlet.*; import javax.servlet.http.*; import org.apache.commons.logging.*; import org.apache.struts.action.*; import org.apache.struts.config.*; import org.quartz.*; import org.quartz.impl.StdSchedulerFactory; import org.quartz.jobs.ee.ejb.EJBInvokerJob; import java.util.*; public class QuartzPlugin implements PlugIn { private static Log log = LogFactory.getLog(QuartzPlugin.class); private String ECOM_GROUP = quot;eComGroupquot;; Scheduler sched; public void init(ActionServlet servlet, ModuleConfig moduleConfig) throws ServletException { log.info(quot;Quartz startingquot;); //Scheduler sched; try { sched = StdSchedulerFactory.getDefaultScheduler(); sched.start(); } catch (Exception e) { log.info(quot;Quartz Scheduler failed to initialize: quot; + e.toString()); throw new ServletException(e); } log.info(quot;Initializing jobs...quot;); addJob(sched, quot;Heartbeatquot;, quot;HeartbeatJobquot;, quot;executequot;, quot;0 0/15 * * * ?quot;); // every 15 minutes addJob(sched, quot;ExpiredTrialquot;, quot;ExpiredTrialJobquot;, quot;executequot;, quot;0 0 20/24 * * ?quot;); // every day at 8pm log.debug(quot;Quartz startedquot;); } private void addJob(Scheduler sched, String jobName, String jndiName, String methodName, String timing) { JobDetail jd = new JobDetail(jobName, ECOM_GROUP, EJBInvokerJob.class); jd.getJobDataMap().put(EJBInvokerJob.EJB_JNDI_NAME_KEY, jndiName); jd.getJobDataMap().put(EJBInvokerJob.EJB_METHOD_KEY, methodName); Object[] jdArgs = new Object[0]; jd.getJobDataMap().put(quot;argsquot;, jdArgs); CronTrigger cronTrigger = new CronTrigger(jobName, ECOM_GROUP); try { cronTrigger.setCronExpression(timing); sched.scheduleJob(jd, cronTrigger); } catch (Exception e) { e.printStackTrace(); } } public void destroy() { log.info(quot;Quartz stoppingquot;); try { sched.shutdown(); } catch (SchedulerException ex) { ex.printStackTrace(); } sched = null; } } I think I'll put this into my blog. Wiebe de Jong http://frontierj.blogspot.com/ -Original Message- From: Thomas Vogt [mailto:[EMAIL PROTECTED] Sent: Wednesday, September 29, 2004 10:08 PM To: Struts Users Mailing List Subject: AW: Struts and Quartz Scheduler You need a class to be executed as Job public final class BerechnungsJob implements Job { /* (Kein Javadoc) * @see org.quartz.Job#execute(org.quartz.JobExecutionContext) */ public void execute
RE: Struts Action as Welcome File
Just have your web.xml point to a jsp. I call mine index.jsp, but you can use whatever. welcome-file-list welcome-file/index.jsp/welcome-file /welcome-file-list The jsp contents would be: html head META HTTP-EQUIV=Refresh CONTENT=0; URL=/myapp/login.do?method=load /head /html Wiebe -Original Message- From: Mulligan, Scott H [mailto:[EMAIL PROTECTED] Sent: Thursday, September 23, 2004 12:37 PM To: Struts Users Mailing List Subject: Struts Action as Welcome File I am trying to set my application's welcome file to a struts dispatch action (login.do?method=load), but it isn't being found. Is there any reason I can't use a dispatch action as my welcome page? Is there a better way to do this? Scott Mulligan - 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 Action as Welcome File
Would that work with Tiles? Wiebe -Original Message- From: Matt Bathje [mailto:[EMAIL PROTECTED] Sent: Thursday, September 23, 2004 1:51 PM To: Struts Users Mailing List Subject: Re: Struts Action as Welcome File If search engine placement is a concern for your app, the home page redirect may be a bad idea. We used this instead: (in index.jsp): %@ taglib uri=/tags/struts-logic prefix=logic % logic:forward name=indexNoRedirect/ (in struts-config): forward name=indexNoRedirect path=/myapp/login.do?method=load redirect=false/ Matt Mulligan, Scott H wrote: That worked. I was hoping for a more elegant solution, but it'll do. Thanks! Scott Mulligan -Original Message- From: Wiebe de Jong [mailto:[EMAIL PROTECTED] Sent: Thursday, September 23, 2004 4:23 PM To: 'Struts Users Mailing List' Subject: RE: Struts Action as Welcome File Just have your web.xml point to a jsp. I call mine index.jsp, but you can use whatever. welcome-file-list welcome-file/index.jsp/welcome-file /welcome-file-list The jsp contents would be: html head META HTTP-EQUIV=Refresh CONTENT=0; URL=/myapp/login.do?method=load /head /html Wiebe -Original Message- From: Mulligan, Scott H [mailto:[EMAIL PROTECTED] Sent: Thursday, September 23, 2004 12:37 PM To: Struts Users Mailing List Subject: Struts Action as Welcome File I am trying to set my application's welcome file to a struts dispatch action (login.do?method=load), but it isn't being found. Is there any reason I can't use a dispatch action as my welcome page? Is there a better way to do this? Scott Mulligan - 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 Action as Welcome File
Yup! I like it. Thanks Wiebe -Original Message- From: David G. Friedman [mailto:[EMAIL PROTECTED] Sent: Thursday, September 23, 2004 4:53 PM To: Struts Users Mailing List Subject: RE: Struts Action as Welcome File Wiebe, If you want any directly-web-accessible JSP to display a tile, you can do that. Directions are in the TilesAdvancedFeatures.pdf: http://www.lifl.fr/~dumoulin/tiles/tilesAdvancedFeatures.pdf I often make my index.jsp (my web.xml's welcome-file) with code like this: %@ taglib uri=/tags/struts-tiles prefix=tiles % tiles:insert definition=default.layout/ Or insert specific items or replacements for the definition using the tiles addList, putList, put, etc. methods inside the tiles:insert tag,instead of immediately closing the tiles:insert tag. Was that what you meant by Would that work with Tiles? Regards, David -Original Message- From: Wiebe de Jong [mailto:[EMAIL PROTECTED] Sent: Thursday, September 23, 2004 5:01 PM To: 'Struts Users Mailing List' Subject: RE: Struts Action as Welcome File Would that work with Tiles? Wiebe -Original Message- From: Matt Bathje [mailto:[EMAIL PROTECTED] Sent: Thursday, September 23, 2004 1:51 PM To: Struts Users Mailing List Subject: Re: Struts Action as Welcome File If search engine placement is a concern for your app, the home page redirect may be a bad idea. We used this instead: (in index.jsp): %@ taglib uri=/tags/struts-logic prefix=logic % logic:forward name=indexNoRedirect/ (in struts-config): forward name=indexNoRedirect path=/myapp/login.do?method=load redirect=false/ Matt Mulligan, Scott H wrote: That worked. I was hoping for a more elegant solution, but it'll do. Thanks! Scott Mulligan -Original Message- From: Wiebe de Jong [mailto:[EMAIL PROTECTED] Sent: Thursday, September 23, 2004 4:23 PM To: 'Struts Users Mailing List' Subject: RE: Struts Action as Welcome File Just have your web.xml point to a jsp. I call mine index.jsp, but you can use whatever. welcome-file-list welcome-file/index.jsp/welcome-file /welcome-file-list The jsp contents would be: html head META HTTP-EQUIV=Refresh CONTENT=0; URL=/myapp/login.do?method=load /head /html Wiebe -Original Message- From: Mulligan, Scott H [mailto:[EMAIL PROTECTED] Sent: Thursday, September 23, 2004 12:37 PM To: Struts Users Mailing List Subject: Struts Action as Welcome File I am trying to set my application's welcome file to a struts dispatch action (login.do?method=load), but it isn't being found. Is there any reason I can't use a dispatch action as my welcome page? Is there a better way to do this? Scott Mulligan - 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: site shutdown best practice?
Here is what I have done to implement the Site Shutdown use case. Create an application level status variable, called runStatus, with a default value of 'started'. Create a page where the application admin user can initiate the shutdown process. Enter the number X of minutes before shutdown. RunStatus is set to 'shutting down'. A timer is started which will run the shutdown process in X minutes (whatever the admin entered as a value). New Sessions: When RunStatus != 'started', all login attempts are automatically redirected to an information page. Current Sessions: If RunStatus = 'started', do normal action. If RunStatus = 'shutting down', display a 'System shutting down in X minutes' message before doing the normal action. If RunStatus = 'stopped', send user to information page and kill session. Shutdown Process: After X minutes, set RunStatus = 'stopped'. Then do whatever needs doing, like closing database connection pool, notifying admin user, etc. Wiebe de Jong -Original Message- From: Dean A. Hoover [mailto:[EMAIL PROTECTED] Sent: Tuesday, September 07, 2004 10:26 AM To: [EMAIL PROTECTED] Subject: site shutdown best practice? I have a website I'm working on that is fairly typical (I think): there areoperations that anyone can do and operations that require a user to be logged in. Authorization and authentication are done using a database. From time to time, the site needs to be shutdown for general maintenance, upgrades, etc. I want to give the users fair warning that the site will be shut down at such and such a time. I also want to prevent the users from performing operations during this shutdown. I think it would be good if there were still a home page up, with indications that the system is offline and should be back by a certain time. At first I thought I would create some table in my database to control some of this but I think this is not such a great idea, as the reason for taking the site down may be to do something radical to the database. Is there some best practice for accomplishing this? Thanks. Dean Hoover - 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: [OT]1,2,3,4 I declare a pun war!
Yup, down by the brie, by the brie, by the beautiful brie... -Original Message- From: Jim Barrows [mailto:[EMAIL PROTECTED] Sent: Wednesday, August 18, 2004 2:53 PM To: Struts Users Mailing List Subject: RE: [OT]1,2,3,4 I declare a pun war! -Original Message- From: Jason King [mailto:[EMAIL PROTECTED] Sent: Wednesday, August 18, 2004 2:55 PM To: Struts Users Mailing List Subject: Re: [OT]1,2,3,4 I declare a pun war! I cheddar at the thought of a pun war. Must be a little colby, where you are then Sometimes it's a real feta to get to work though That's cheesy. Hey, as long is it doesn't make you blue, or throw bricks... - 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: [OT]1,2,3,4 I declare a pun war!
On the topic of sheep, Where does that 100% virgin wool come from anyways? -Original Message- From: Jim Barrows [mailto:[EMAIL PROTECTED] Sent: Wednesday, August 18, 2004 3:09 PM To: Struts Users Mailing List Subject: RE: [OT]1,2,3,4 I declare a pun war! -Original Message- From: Barnett, Brian W. [mailto:[EMAIL PROTECTED] Sent: Wednesday, August 18, 2004 2:58 PM To: 'Struts Users Mailing List' Subject: RE: [OT]1,2,3,4 I declare a pun war! That was a b-d one. Shearly it's not that wooly... -Original Message- From: Jim Barrows [mailto:[EMAIL PROTECTED] Sent: Wednesday, August 18, 2004 3:56 PM To: Struts Users Mailing List Subject: RE: [OT]1,2,3,4 I declare a pun war! -Original Message- From: David Durham [mailto:[EMAIL PROTECTED] Sent: Wednesday, August 18, 2004 2:54 PM To: Struts Users Mailing List Subject: Re: [OT]1,2,3,4 I declare a pun war! Jim Barrows wrote: Sometimes it's a real feta to get to work though That's cheesy. Hey, as long is it doesn't make you blue, or throw bricks... No, it wouldn't make you bleu; it's a white cheese made from ewe or goat's milk... Oh, now I feel sheepish. - 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: [OT] DAO ... where to draw the line?
When it comes to app architecture, I always recommend the Core J2EE Patterns book. The Second Edition is now available and you can get an overview of it at http://corej2eepatterns.com/Patterns2ndEd/BusinessObject.htm In response to your question: A DAO should only contain the SQL code for the create/read/update/delete/find methods of one single database file or view. The Business Object, which is new in the Second Edition, wraps the DAO and manages the state and business rules for that one object. Remove any business rules, etc currently in your DAO and move them to the associated Business Object when refactoring. The Application Service, which is also new in the Second Edition, manages business rules across multiple objects (Business Objects and/or DAOs). Remove any business rules, etc currently in your Session Façades and move them to the Application Service when refactoring. Leave the transaction control, database connection stuff, etc in the Session Façade. So, go with your first example. Employee and Department should each have their own DAO. If Department is just a simple lookup table, you could combine them at the Business Object level. If Department is complicated with its own set of business rules, then make use of an Application Service. Wiebe de Jong -Original Message- From: Matthew J. Vincent [mailto:[EMAIL PROTECTED] Sent: Wednesday, August 11, 2004 8:21 AM To: Struts Users Mailing List Subject: [OT] DAO ... where to draw the line? [OFF TOPIC] I know this is a struts forum, but as struts developers using DAOs, where do your DAO implementation draw the line? For example: Let''s say I have three tables: Employee (contains employee_id, employee_name, and dept_id) Department (contains dept_id, dept_name, loc_id) Location (contains loc_id, location_name) How deep do your classes go to replicate the data? Do you do this... public class Employee { private int id; private String name; private int deptId; // just the id // .. implementation details } or do you do this public class Employee { private int id; private String name; private Department dept; // all of the data // .. implementation details } and so on and so on. Class Department has the same type of problem. Does it hold just the id for location or a variable class Location? Should DAOs just fill in the id (keys) so it is up to the application using the DAOs to get the Employee class, then the Department class, and the the Location class like: Employee emp = EmployeDAO.getEmployee(1); Department dept = DepartmentDAO.getDepartment(emp.getDeptId()); Location loc = LocationDAO.getLocation(dept.getLocId()); System.out.println(emp.getEmpName() + works in + loc.getLocationName()); or Employee emp = EmployeDAO.getEmployee(1); System.out.println(emp.getEmpName() + works in + emp.getDept().getLoc().getLocationName()); Now this is just a simple example, but where do you draw the line? It's possible to go on and on and on and cycle back to employee... Any thoughts, links, tips, best practices, whatvere would be helpful! Thanks! Matt - 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 security/validation
I had a similar problem, which I discovered when one of my users tried to enter a street address containing an apostrophe. Since I use apostrophes to delineate my text strings in my SQL statements, this caused a database error. I fixed it by not allowing apostrophes to be entered into any of the test fields. I admit this is overly restrictive, but I don't know how to get the apostrophe into my database otherwise. How would you do it Craig? For SQL destined test, I disallow \ and '. For XML destined text, I disallow , , , \, and . Wiebe de Jong -Original Message- From: Craig McClanahan [mailto:[EMAIL PROTECTED] Sent: Wednesday, August 11, 2004 10:21 AM To: Struts Users Mailing List Subject: Re: Struts security/validation On Wed, 11 Aug 2004 14:45:05 +0100, James Adams [EMAIL PROTECTED] wrote: Hello all, I'm in the process of trying to secure my struts application against Cross site scripting, SQL injection style attacks. One of the things I'm doing to prevent this is trying to restrict special characters (;.(){}...etc) getting beyond the validator. Just thinking out loud for a moment ... Cross site scripting attacks don't happen when sensitive characters are inside an *input* field. The problem comes if you *output* the data without filtering for them. That's why the Struts bean:write tag, for example, filters , , , and ; for you unless you explicitly tell it not to, so if you are diligent about how you copy your database data to output pages, you can safely accept these kinds of character in input. I notice that Kishore Senji (one of the other respondents in this thread) is using Google's Gmail, just as I am at the moment. Since this is a web application, it's a good thing that Googe isn't disallowing the magic characters on input into a textarea, or else we would not be able to participate in this conversation :-). Is filtering input really the appropriate strategy for dealing with this problem? If successful it will certainly help, but the approach strikes me as overly restrictive for most application needs. 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 security/validation
Craig, both you and Jim suggested that I make use of prepared statements. I implemented my SQL using strings because it is easier to tweak during the development phase. Now that the project is in maintenance, moving to prepared statements is a good idea. Probably help a bit in performance as well. As for the XML/SOAP calls, using the serializer to create the character entities would be good. Thanks Wiebe de Jong -Original Message- From: Craig McClanahan [mailto:[EMAIL PROTECTED] Sent: Wednesday, August 11, 2004 10:50 AM To: Struts Users Mailing List Subject: Re: Struts security/validation On Wed, 11 Aug 2004 10:32:04 -0700, Wiebe de Jong [EMAIL PROTECTED] wrote: I had a similar problem, which I discovered when one of my users tried to enter a street address containing an apostrophe. Since I use apostrophes to delineate my text strings in my SQL statements, this caused a database error. I fixed it by not allowing apostrophes to be entered into any of the test fields. I hope you never have a customer named O'Reilly :-). I admit this is overly restrictive, but I don't know how to get the apostrophe into my database otherwise. How would you do it Craig? For SQL destined test, I disallow \ and '. If I'm doing the SQL myself, I always use prepared statements: String streetAddress = ...; // String may have \ and ' characters in it PreparedStatement stmt = conn.prepareStatement (UPDATE CUSTOMER SET STREET_ADDRESS=? WHERE CUSTID=?); stmt.setString(1, streetAddress); stmt.setInt(2, custId); stmt.executeUpdate(); and let the JDBC driver take care of getting the sensitive characters escaped as needed. (Of course, if you're using a persistence tier abstraction like EJB or JDO or JDBC RowSets or Hibernate or iBatis et. al., you don't need to worry about any of this -- it all happens automatically for you.) For XML destined text, I disallow , , , \, and . For XML, I use one of several strategies depending on the detailed situation: * Recognize that XML allows either or ' as attribute delimiters, so if a string includes one kind, just use the other. * Write or use an XML serializer that translates to amp; and so on for me. * If the XML I am writing is actually markup on a page, use JSF components ... JSF includes APIs that do all the escaping for you. Wiebe de Jong 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]
extending the html:select tag
I am having trouble extending the struts html:select tag, and I hope somebody can help me. Naill's example at http://www.niallp.pwp.blueyonder.co.uk/#errortag shows how to extend the text tag. I used it to extend the password tag with no problem. However, when I use the same method to extend the select tag, I get a runtime error. It seems to die even before the constructor is called. So, how do you debug tags and does anyone have a solution to make this work? Wiebe de Jong - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: Trying to highlate error causing fields
Niall, This works great! Following your example at http://www.niallp.pwp.blueyonder.co.uk/#errortag I extended it to do the password tag and it worked. A problem occurred when I tried to implement something for the select tag. I keep getting the [ServletException in:/tiles/mypage.jsp] -1 0' error. My files are attached. Any ideas? Have you implemented any of the other form tags? Wiebe -Original Message- From: Niall Pemberton [mailto:[EMAIL PROTECTED] Sent: Monday, August 09, 2004 5:41 AM To: Struts Users Mailing List Subject: Re: Trying to highlate error causing fields There a jar cotaining the compiled class and a tld file that you can download: http://www.niallp.pwp.blueyonder.co.uk/customtags.zip All you need to do is deploy it as you would any other tag libarary. Niall - Original Message - From: joe a. [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Monday, August 09, 2004 12:48 AM Subject: Trying to highlate error causing fields I'm trying to use #3 on this page: http://www.niallp.pwp.blueyonder.co.uk/. It is a tag library that I'm trying to use with my struts web app. But I have no clue how to use the class file he provided. I don't know where to put it at compile time, and it has a different package name than my current project (package lib.framework.taglib;) - 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: Trying to highlate error causing fields
Seems the attached files didn't get through. Here are the important parts inline: ecom-tags.tld: ?xml version=1.0 encoding=UTF-8? !DOCTYPE taglib PUBLIC -//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd; taglib tlibversion1.0/tlibversion jspversion1.1/jspversion shortnameecom/shortname tag nameselect/name tagclasscom.infobuild.ecom.taglib.SelectErrorTag/tagclass bodycontentJSP/bodycontent attribute nameerrorStyleSuffix/name requiredfalse/required rtexprvaluetrue/rtexprvalue /attribute attribute nameaccesskey/name requiredfalse/required rtexprvaluetrue/rtexprvalue /attribute attribute namealt/name requiredfalse/required rtexprvaluetrue/rtexprvalue /attribute attribute namealtKey/name requiredfalse/required rtexprvaluetrue/rtexprvalue /attribute attribute namedisabled/name requiredfalse/required rtexprvaluetrue/rtexprvalue /attribute attribute nameindexed/name requiredfalse/required rtexprvaluetrue/rtexprvalue /attribute attribute namemultiple/name requiredfalse/required rtexprvaluetrue/rtexprvalue /attribute attribute namename/name requiredfalse/required rtexprvaluetrue/rtexprvalue /attribute attribute nameonblur/name requiredfalse/required rtexprvaluetrue/rtexprvalue /attribute attribute nameonchange/name requiredfalse/required rtexprvaluetrue/rtexprvalue /attribute attribute nameonclick/name requiredfalse/required rtexprvaluetrue/rtexprvalue /attribute attribute nameondblclick/name requiredfalse/required rtexprvaluetrue/rtexprvalue /attribute attribute nameonfocus/name requiredfalse/required rtexprvaluetrue/rtexprvalue /attribute attribute nameonkeydown/name requiredfalse/required rtexprvaluetrue/rtexprvalue /attribute attribute nameonkeypress/name requiredfalse/required rtexprvaluetrue/rtexprvalue /attribute attribute nameonkeyup/name requiredfalse/required rtexprvaluetrue/rtexprvalue /attribute attribute nameonmousedown/name requiredfalse/required rtexprvaluetrue/rtexprvalue /attribute attribute nameonmousemove/name requiredfalse/required rtexprvaluetrue/rtexprvalue /attribute attribute nameonmouseout/name requiredfalse/required rtexprvaluetrue/rtexprvalue /attribute attribute nameonmouseover/name requiredfalse/required rtexprvaluetrue/rtexprvalue /attribute attribute nameonmouseup/name requiredfalse/required rtexprvaluetrue/rtexprvalue /attribute attribute nameproperty/name requiredtrue/required rtexprvaluetrue/rtexprvalue /attribute attribute namestyle/name requiredfalse/required rtexprvaluetrue/rtexprvalue /attribute attribute namestyleClass/name requiredfalse/required rtexprvaluetrue/rtexprvalue /attribute attribute namestyleId/name requiredfalse/required rtexprvaluetrue/rtexprvalue /attribute attribute nametabindex/name requiredfalse/required rtexprvaluetrue/rtexprvalue /attribute attribute namesize/name requiredfalse/required rtexprvaluetrue/rtexprvalue /attribute attribute nametitle/name requiredfalse/required rtexprvaluetrue/rtexprvalue /attribute attribute nametitleKey/name requiredfalse/required rtexprvaluetrue/rtexprvalue /attribute attribute namevalue/name requiredfalse/required rtexprvaluetrue/rtexprvalue /attribute /tag /taglib SelectErrorTag.java: package com.infobuild.ecom.taglib; import org.apache.struts.taglib.html.SelectTag; import java.util.Iterator; import javax.servlet.jsp.JspException; import org.apache.struts.util.RequestUtils; import org.apache.struts.action.ActionErrors; public class SelectErrorTag extends SelectTag { protected String errorStyleSuffix = Err; public SelectErrorTag() { super(); } snipeverything that follows is the same as the TextErrorTag.java example/snip end/ -Original Message- From: Wiebe de Jong [mailto:[EMAIL PROTECTED] Sent: Monday, August 09, 2004 3:33 PM To: 'Struts Users Mailing List' Subject: RE: Trying to highlate error causing fields Niall, This works great! Following your example at http://www.niallp.pwp.blueyonder.co.uk/#errortag I extended it to do the password tag and it worked. A problem occurred when I tried to implement something for the select tag. I keep getting the [ServletException in:/tiles/mypage.jsp] -1 0' error. My files are attached. Any ideas? Have you implemented any of the other form tags? Wiebe -Original Message- From: Niall Pemberton [mailto:[EMAIL PROTECTED] Sent: Monday, August 09, 2004 5:41 AM To: Struts Users Mailing List Subject: Re: Trying to highlate error causing fields There a jar cotaining the compiled class and a tld file that you can download: http://www.niallp.pwp.blueyonder.co.uk/customtags.zip All you need to do is deploy it as you would any other tag libarary. Niall - Original Message - From: joe a. [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Monday, August 09, 2004 12:48 AM Subject: Trying to highlate error causing fields I'm trying to use #3 on this page: http://www.niallp.pwp.blueyonder.co.uk/. It is a tag library that I'm trying to use with my struts web app. But I have
[OT] Struts users in Vancouver, BC, Canada
Since we're on the topic of finding users, is there anybody out there from the Vancouver, BC, Canada area?
RE: struts.meetup.com (Re: [OT] Struts users in [my city, my country])
Ok. I've signed up as the first user in Vancouver. Now I just have to wait for somebody else to signup... -Original Message- From: Joe Germuska [mailto:[EMAIL PROTECTED] Sent: Monday, May 24, 2004 1:46 PM To: Struts Users Mailing List Subject: struts.meetup.com (Re: [OT] Struts users in [my city, my country]) Struts users interested in meeting other Struts users face-to-face might want to have a look at http://struts.meetup.com/ Joe -- Joe Germuska [EMAIL PROTECTED] http://blog.germuska.com Imagine if every Thursday your shoes exploded if you tied them the usual way. This happens to us all the time with computers, and nobody thinks of complaining. -- Jef Raskin - 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: quartz scheduling
Here is a short tutorial on how to integrate Quartz http://www.theserverside.com/blogs/showblog.tss?id=QuartzSchedulerInJ2EE Wiebe -Original Message- From: Jignesh Patel [mailto:[EMAIL PROTECTED] Sent: Tuesday, April 20, 2004 6:36 AM To: [EMAIL PROTECTED] Subject: quartz scheduling Hi All, Can anybody guide me how to integrate quartz scheduler with tomcat? I am trying to develop email scheduling through quartz. -Jignesh - 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: Buffering the ouput of a JSP page within an action
Check out Matt Raible's solution to templated-email using Velocity. It is good and I intend to use it for this purpose. http://www.theserverside.com/blogs/showblog.tss?id=SpringVelocityEmail Wiebe -Original Message- From: Amine Bousta [mailto:[EMAIL PROTECTED] Sent: Monday, April 19, 2004 3:01 AM To: 'Struts Users Mailing List' Subject: Buffering the ouput of a JSP page within an action Hello, I'm trying to write a struts action that could save in a database and send by e-mail the output of a JSP page. This JSP page needs attributes values that are stored in the session context. In other words, I need ServletContext of the struts action and the JSP page to be the same. I first tried to use the Java URL object to perform this action but it creates a separate ServletContext. I didn't find any solution to this issue on the internet. Does anybody can help me?... Amine - 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: [FRIDAY] humour
If you use the strut from an old car, it might have some carbon on it. Take it to the prom. -Original Message- From: Mark Lowe [mailto:[EMAIL PROTECTED] Sent: Friday, April 02, 2004 9:18 AM To: Struts Users Mailing List Subject: Re: [FRIDAY] humour Does anyone know how I can do carbon dating using struts.. ? I'm using tc4.1, struts 1.1 and postgres. Thankyou very much for any help.. On 2 Apr 2004, at 19:11, Hookom, Jacob wrote: LOL... -Original Message- From: Mark Lowe [mailto:[EMAIL PROTECTED] Sent: Friday, April 02, 2004 11:07 AM To: Struts Users Mailing List Subject: Re: [FRIDAY] humour Thats right have a laugh, but they'll see I'm right.. On 2 Apr 2004, at 18:58, Adam Hardy wrote: Since it's Friday and I felt in need of a little light relief, I looked through my collection of old humour-spam and found this, which is so good I thought you listers would appreciate me sharing it here. The story behind the letter below is that there is this nutball who digs things out of his back yard and sends the stuff he finds to the Smithsonian Institute, labelling them with scientific names, insisting that they are actual archaeological finds. This guy really exists and does this in his spare time! This is the actual response from the Smithsonian Institution. It is a masterful piece of diplomacy. Bear this in mind next time you are trying to let someone down gently. Smithsonian Institute 207 Pennsylvania Avenue Washington, DC 20078 Dear Sir: Thank you for your latest submission to the Institute, labelled 93211-D, layer seven, next to the clothesline post...Hominid skull. We have given this specimen a careful and detailed examination, and regret to inform you that we disagree with your theory that it represents conclusive proof of the presence of Early Man in Charleston County two million years ago. Rather, it appears that what you have found is the head of a Barbie doll, of the variety one of our staff, who has small children, believes to be Malibu Barbie. It is evident that you have given a great deal of thought to the analysis of this specimen, and you may be quite certain that those of us who are familiar with your prior work in the field were loathe to come to contradiction with your findings. However, we do feel that there are a number of physical attributes of the specimen which might have tipped you off to its modern origin: 1. The material is moulded plastic. Ancient hominid remains are typically fossilised bone. 2. The cranial capacity of the specimen is approximately 9 cubic centimetres, well below the threshold of even the earliest identified proto-homonids. 3. The dentition pattern evident on the skull is more consistent with the common domesticated dog than it is with the ravenous man-eating Pliocene Clams you speculate roamed the wetlands during that time. This latter finding is certainly one of the most intriguing hypotheses you have submitted in your history with this institution, but the evidence seems to weigh rather heavily against it. Without going into too much detail, let us say that: A. The specimen looks like the head of a Barbie doll that a dog has chewed on. B. Clams don't have teeth. It is with feelings tinged with melancholy that we must deny your request to have the specimen carbon dated. This is partially due to the heavy load our lab must bear in its normal operation, and partly due to carbon dating's notorious inaccuracy in fossils of recent geologic record. To the best of our knowledge, no Barbie dolls were produced prior to 1956 AD, and carbon dating is likely to produce wildly inaccurate results. Sadly, we must also deny your request that we approach the National Science Foundation Phylogeny Department with the concept of assigning your specimen the scientific name Australopithecus spiff-arino. Speaking personally, I, for one, fought tenaciously for the acceptance of your proposed taxonomy, but was ultimately voted down because the species name you selected was hyphenated, and didn't really sound like it might be Latin. However, we gladly accept your generous donation of this fascinating specimen to the museum. While it is undoubtedly not a Hominid fossil, it is, nonetheless, yet another riveting example of the great body of work you seem to accumulate here so effortlessly. You should know that our Director has reserved a special shelf in his own office for the display of the specimens you have previously submitted to the Institution, and the entire staff speculates daily on what you will happen upon next in your digs at the site you have discovered in your back yard. We eagerly anticipate your trip to our nation's capital that you proposed in your last letter, and several of us are pressing the Director to pay for it. We are particularly interested in hearing you expand on your theories surrounding the trans-positating fillifitation of ferrous ions in a