Very, very kewl.
Short Term Plan
I'm about through the Users Guide, and will refresh my CVS and post
some very minor fixes.
I'll also update the struts.xls to reflect a 2001 copyright (forward
into the present!)
Meanwhile,
Any thoughts on a better approach to formatting the example code.
Please note that I made another commit this morning, but apparently the
message did not go through. (Too long?)
I committed several minor changes to the user guide, and fixed some of
the links.
Unforutnately, I deleted my notes after posting the commit, so can't be
more specific.
-T.
-- Ted
ond byte of the DBCS character set).
--
Michael Westbay
Work: Beacon-IT http://www.beacon-it.co.jp/
Home: http://www.seaple.icc.ne.jp/~westbay
Commentary: http://www.japanesebaseball.com/
-- Ted Husted, Husted dot Com, Fairport NY USA.
-- Custom Software ~ Technical Services.
-- Tel 716 4
ve the XML also generate a "printer
friendly" version that didn't steal space on the left for the menu.
*** REPLY SEPARATOR ***
On 1/22/2001 at 12:00 PM Craig R. McClanahan wrote:
Ted Husted wrote:
As of the 1/22 build, the User Guide should print well in landscap
ngly object against this. There are already enough
incompatibilities to be aware of.
My DM 0.02, best,
Michael
--
Vote against SPAM - see http://www.politik-digital.de/spam/
Michael Gerdau email: [EMAIL PROTECTED]
Function call to load Windows: here_piggy_piggy_piggy_piggy
PGP-keys ava
as wondering if there was some alternative, or if my
changes might make
their way into CVS.
- Steve
_
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com
-- Ted Husted, Husted dot Com, Fairport NY USA.
-- Custom
right foot with new applications.
-- Ted Husted, Husted dot Com, Fairport NY USA.
-- Custom Software ~ Technical Services.
-- Tel 716 425-0252; Fax 716 223-2506.
-- http://www.husted.com/about/struts/
as to the specific problem, we should include that too.
If you can help us out, please see the install file in your
jakarta-struts folder for an example format.
-- Ted Husted, Husted dot Com, Fairport NY USA.
-- Custom Software ~ Technical Services.
-- Tel 716 425-0252; Fax 716 223-2506.
-- http
ble impact on the Action classes themselves. If the names of the
"next" JSP
pages were hard coded into the Action classes, all of these classes
would also need to
be modified.
/quote
-- Ted Husted, Husted dot Com, Fairport NY USA.
-- Custom Software ~ Technical Services.
-- Tel 716 425-02
So,
Craig and Kevin Duffy have volunteered a pieces appropriate for a "Who
We Are" section about the Struts Committers. Do we have any more takers?
Here's mine:
Ted Husted
--
My primary interest in Struts is to put it to work writing lots of
real-life Web application
Many thanks, dIon!
I'll get this into the CVS this afternoon.
[EMAIL PROTECTED] wrote:
WEBSPHERE APPLICATION SERVER
snip/
dIon Gillard, Multitask Consulting
Work: http://www.multitask.com.au
NetRexx: http://www.multitask.com.au/NetRexx.nsf
"Knabe, Rusty" wrote:
What's the status of iPlanet?
It's important to note that there are two iPlanet products: WS and AS.
The latest AS roundups seems to be here
http://www.mail-archive.com/struts-user@jakarta.apache.org/msg01966.html
"Craig R. McClanahan" wrote:
I would like to propose the following individuals for committer status
on the Struts project:
Rob Leland
+1
Vincent Massol
+1
and bye
Mallari
-- Ted Husted, Husted dot Com, Fairport NY USA.
-- Custom Software ~ Technical Services.
-- Tel 716 737-3463.
-- http://www.husted.com/about/struts/
t;);
+results.append(focus);
+results.append("\"]");
results.append(".focus()\r\n");
results.append(" // --\r\n");
results.append("/script\r\n");
-- Ted Husted, Husted dot Com, Fairport NY USA.
-- Custom Software ~ Technical Services.
-- Tel 716 737-3463.
-- http://www.husted.com/about/struts/
://home.earthlink.net/~dwinterfeldt/
-- Ted Husted, Husted dot Com, Fairport NY USA.
-- Custom Software ~ Technical Services.
-- Tel 716 737-3463.
-- http://www.husted.com/about/struts/
Tahir,
David Winterfeldt has a very nice approach to regex validation that just
plugs into the framework, without modifying the code. Check it out at
http://home.earthlink.net/~dwinterfeldt/
This extends the current Struts validation, and works on both the client
and server side. This gets
As I understand it, the automatic properties feature is a way to avoid
the menial work of writing assessors and mutators for your form beans.
There really isn't any "logic" involved. The ActionForm bean has a
standard reset method that you can use to populate your beans with
default values.
If you just want to do the token stuff now, we could work something into
the User Guide about it.
It really should have been in the tour (mea culpa), but it was added
after I wrote the first draft, and I haven't gone back.
As you probably know, we've using the package files to create the
;html:submit property="submit" value="SIGN
IN" /
/td
/table
Note that this workaround will break if the name of the form changes. (A
simple "this.{field}.focus()" doesn't work.) The big fix is to put the
Javascript in the body tag, but that implies adding a html:body ta
http://www.quinion.com/words/qa/qa-inl1.htm
[EMAIL PROTECTED] wrote:
"After that, you're in like Flint."
And I always thought it was Flynn, as in Erol.
--
dIon Gillard, Multitask Consulting
Work: http://www.multitask.com.au
NetRexx: http://www.multitask.com.au/NetRexx.nsf
Michael Hackett wrote:
What about "this.form.elements['password'].focus()" (or just
"this.form.password.focus()")? Since your "this" would be a form field,
you need to go "up" to the form to get to another field.
Thanks, those work.
Damien,
Just to be picky,
Tomcat loads the ActionServlet. The ActionServlet in turn parses the
struts-config file into an ActionMappings database and stores it in
memory. Later in the process, the ActionServlet, Actions, and many of
the tags all refer back to the ActionsMappings database in
as
Strings that someone has to convert someplace.
-- Ted Husted, Husted dot Com, Fairport NY USA.
-- Custom Software ~ Technical Services.
-- Tel 716 737-3463.
-- http://www.husted.com/about/struts/
It is also possible that some of the functionality on the 1.1 TODO list
will be implemented (at least partially) as Commons packages, to the
extent that it is general purpose in nature and not dependent on the
Struts framework.
Craig
-- Ted Husted, Husted dot Com, Fairport NY USA.
-- Custom Software ~
Craig,
Speaking of schemes, any advice on the easiest way to flip between http:
and https: -- the context being able to offer the option of logging in
securely under https:, and then returning to http: afterwards.
Yahoo! Auctions does this, and I'm trying to do that same at
Craig R. McClanahan wrote:
You can calculate an absolute URL for this web app, based on things like
request.getServerName(), request.getContextPath(), and so on. So, one way
to do this would be to have an action that calculated the new absolute
URL, wrapped it in a new ActionForward with the
and see what everyone thinks. If you're
interested, there's a downloadable ZIP at
http://husted.com/about/struts , under Coming Soon.
-- Ted Husted, Husted dot Com, Fairport NY USA.
-- Custom Software ~ Technical Services.
-- Tel 716 737-3463.
-- http://www.husted.com/about/struts/
site.
Very soon, I hope to begin work on a place where you will be able to
upload these types of extensions and custom tags directly, so it will be
easier for Struts users to share new ideas, and help streamline the
contribution process.
Ted Husted, Husted dot Com, Fairport NY USA.
-- Custom
An optional Struts namespace is a fine idea, but we'd probably have to
setup some sort of gatekeeping process for that.
In the meantime, you might want to place them under your own namespace,
such as de.console.huss.struts
Roland Huss wrote:
Hi,
I'm in process of preparing some
-
From: Ted Husted [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Wednesday, May 30, 2001 10:38 PM
Subject: Re: Bean philosophy
Jonas Bjornerstedt wrote:
I see little reason (yet) why the ActionForm should be modeled as such.
I think the keyword here is yet. Much of the underlying Struts
I'm not sure if this is the answer to your question, but if you are
writing directly to the client from Action.perform() you can return null
to tell the ActionServlet that the request has already been fulfilled.
-- Ted Husted, Husted dot Com, Fairport NY USA.
-- Custom Software ~ Technical
So, would this then give us access to things like RowSet objects which
have accessors like getString(1) ?
Craig R. McClanahan wrote:
Yep. Something like this is part of the enhancements I see in Struts 1.1.
On Wed, 30 May 2001, Rapheal Kaplan wrote:
Has anyone thought about allowing
+1
Craig R. McClanahan wrote:
I *really* wanted to have a 1.0 final release in time for JavaOne. But
the recent events on the Apache server (a cracker got in), plus the fact
that rebuilding things took Bugzilla down for a while, has made that
basically impossible :-(.
Instead, what I
+1 on an empty attribute
I've been adding logic to my value beans to turn empty Strings back to
nulls when retrieving properties from the database (where I don't permit
nulls), so this would save me that workaround.
Craig R. McClanahan wrote:
A third option would be to add an empty attribute
?
-ravi
-Original Message-
From: Ted Husted [mailto:[EMAIL PROTECTED]]
Sent: Friday, June 01, 2001 6:55 AM
To: [EMAIL PROTECTED]
Subject: Re: Need a Good Example Which uses Struts
I believe everything written about Struts is referenced at
http://www.husted.com/about/struts
to be the primary requirement,
with JavaScript as a standard option. Which implies that the validations
need to be coded where the tags and other components can all see them.
-- Ted Husted, Husted dot Com, Fairport NY USA.
-- Custom Software ~ Technical Services.
-- Tel 716 737-3463.
-- http
for beta 3, and giving him write access will help us get 1.0 out
the door.
I hereby propose him as a Committer; he has my +1.
-- Ted Husted, Husted dot Com, Fairport NY USA.
-- Custom Software ~ Technical Services.
-- Tel 716 737-3463.
-- http://www.husted.com/about/struts/
Good points, Michael.
Language is one thing, location is another, and right now Java i18n does
seem to infer location from language.
In practice, this says that if they choose country XX on a
contact form, then they should get the validations for country XX,
regardless of any global XX locale
We're not only talking just about language now, we're talking about
validating things like telephone numbers and postal codes based where
the user is located, regardless of what language they prefer. Michael's
example was a Spanish-speaking resident in the US, who might be in the
ES locale as to
The idea of begin able to script a workflow in struts-config has been
kicked around a bit, but I don't think anyone has brought any code to
the table.
Personally, I'm starting to play around with the idea of a stack that
would push URIs that were part of a workflow, and the concept of done
a cohesive package, even if you would
not use every method on any one layer of a MVC application.
-- Ted Husted, Husted dot Com, Fairport NY USA.
-- Custom Software ~ Technical Services.
-- Tel 716 737-3463.
-- http://www.husted.com/about/struts/
I'm still fuzzy on the mechanism we would use to represent and enforce
the workflow. There has been mention of things like command tokens, but
are any code samples available.
Can anyone explain how Barracuda implements their workflow, and whether
it could be mapped to the Struts
The ActionServlet usually does this for you when it is needed.
In general, your ActionForm beans should be in request context, and so
you would start out a fresh one with a new request cycle. If validation
fails, the ActionForm beans carries the data back to the input form so
the user can
The best procedure would be to submit it to Bugzilla as an enhancement.
Or, you can just post it here, or send it to me, and I will commit the
change.
-- Ted Husted, Husted dot Com, Fairport NY USA.
-- Custom Software ~ Technical Services.
-- Tel 716 737-3463.
-- http://www.husted.com/about
something that was
compatible with Barracuda (and entirely optional).
http://barracuda.enhydra.org/
This might also play nice with the workflow proposal, since I don' tknow
how anything but the simplest of workflows would be possble with what we
have now.
-- Ted Husted, Husted dot Com, Fairport
I suppose it's the details of setting up your config files that I was
wondering about.
Craig Tataryn wrote:
I was thinking that it would be an applet or application. Something rich.
Ted, as for enforcing the workflow, I hadn't even considered it. The goal of
the TODO is just to make a
Do you think it might be possible for this model to support some type of
bookmark ?
I'm thinking of places where we want to start one procedure, but cope
with the user going off and doing something else, and then coming back
to the procedure later. Examples would be looking up related records,
It's possible we're talking about two different things. Something that
comes up a lot is the idea of a frame of reference longer than a request
but shorter than a session, since there are many tasks which cannot be
resolved in a single request, and are also interdependant.
* Form Wizards
* Are
David W did a nice job of integrating Validation into Struts by adding a
servlet and hooking it to the ActionForm.
I wonder if we could do the same thing with the ActionServlet by hooking
it to an ApplicationGateway servlet that was also initialized in the
web.xml?
It would be very cool if we
... comments welcome
-- Ted Husted, Husted dot Com, Fairport NY USA.
-- Custom Software ~ Technical Services.
-- Tel 716 737-3463.
-- http://www.husted.com/about/struts/
with standard enhancements. This would be a bundling change only, and
entering new packages into the struts-ext distribution would be held to
the same high standard as the core framework.
-- Ted Husted, Husted dot Com, Fairport NY USA.
-- Custom Software ~ Technical Services.
-- Tel 716 737-3463.
-- http
I agree that most extensions would be best written as independant
servlets that plug into the application alongside the Struts
ActionServlet. Though, I'm not sure they would need to register with the
ActionServlet to access other parts of the framework.
I haven't worked with the Digester
I think there's still a lot of ground to cover with Struts-specific tags
that leverage the ActionMappings and other Struts application resources.
Right now, these would be the HTML tags plus logic:forward and
logic:redirect. (Which I personally think should be in HTML anyway,
since they are HTTPD
and encouraged.
-- Ted Husted, Husted dot Com, Fairport NY USA.
-- Custom Software ~ Technical Services.
-- Tel 716 737-3463.
-- http://www.husted.com/about/struts/
You can also create and return Action Forwards on the fly
return (new ActionForward( uri ));
if that helps.
Jeff Trent wrote:
Ok. I guess I'm not familiar enough with struts yet to see how to apply
this type of logic dynamically to the action mapping. I certainly *don't*
want to
include them in the
update.
Source Code Contributors
Arun M. Thomas
Chris Audley
Craig R. McClanahan
David Geary
Don Clasen
Florent Carpentier
Jeff Hutchison
Jimmy Larsson
Luis Arias
Marius Barduta
Mike Schachter
Niall Pemberton
Ralph Schaer
Rob Leland
Sean Kelly
Ted Husted
I've gotten down to a 15,000 foot view of Barracuda, and it looks like
they are doing some nice work. All things remaining equal, I believe it
would be better if our approaches were compatible with Barracuda. For
example, if someone did want to do more with event processing, using as
much of
|
| JSP | | - et cetera |
Response ++ +--+
Web Layer^
View |
[ Configuration ]
-- Ted Husted, Husted dot Com, Fairport NY USA.
-- Custom Software
^
View |
[ Configuration ]
-- Ted Husted, Husted dot Com, Fairport NY USA.
-- Custom Software ~ Technical Services.
-- Tel 716 737-3463.
-- http://www.husted.com/about/struts/
-- Ted Husted, Husted dot Com, Fairport NY USA
and articles, but was inadvertently left
out of yesterday's 1.0. See
http://husted.com/about/struts/resources.html
for a copy of what I just added to 1.1.
-- Ted Husted, Husted dot Com, Fairport NY USA.
-- Custom Software ~ Technical Services.
-- Tel 716 737-3463.
-- http://www.husted.com/about
Jonathan wrote:
I also think that the easier it is for first timers to understand
Struts and how it works, the more likely you will have committed users and
thus more feedback and thus better development.
I have been meaning to try refactoring the installation page so that it
starts with
Depending on the length you should send them inline, or post them
someplace for others to download. Or, if you want to send them to me,
I'll post them on my Struts page.
I'd be a little nervous about distributing MS Word documents myself,
given the critters they can hide.
The final drafts that
I often start with plain text since its easiest to retrofit with the XML
tags later.
Everything we use to build the Struts documentation is in the source
download (\doc).
Jonathan wrote:
Ok. You tell me what you would like. I would like to send html for
formatting purposes, but if you
I put together something in a press release format to distribute to my
local Java Users Group, et cetera.
Comments?
--
(June 15, 2001) The production release of Struts 1.0, an open source
framework for building Web applications, is now available for download
at jakarta.apache.org. Struts
Broadening on the FAQ-o-MATIC idea, how about an extensible
documentation system? Something like a Wiki, but with editing
permissions. My favorite idea would be to take something like
http://dmoz.org/ , complete with the heirarchies of permissions for
editing, but be able to add pages at the
How about:
... /
* Utility classes for XML parsing, automatic JavaBean population, and
internationalization of prompts and messages.
Strut's support for internationalization builds on top of the Java
Locale API, and has made it a popular choice for applications worldwide.
Struts contributors
This is true. The styles we are using now are minimalistic, and you
probably won't need to refer to the stylesheet at all. Just monkey
what's already there ;-). The only real pain is that the XML needs to
compile properly, and if I try it by hand it usualy takes a few tries.
Tools that check the
Absolutely everything is in the source download, under /doc
Jonathan Asbell wrote:
does someone have an example they can shoot to me of the xml and xsl used in
documentation.
I'm on my way to Altanta to do some Struts training today, and will take
this with me to read on the plane. It may be Tuesday before I can post
any comments (just don't think I'd forget you ;-).
-- Ted Husted, Husted dot Com, Fairport NY USA.
-- Custom Software ~ Technical Services.
-- Tel 716
and
implement them -- usually for use in your own project. When you bring
the code back to list, then we can make the decision about whether it's
a good fit with the Struts core.
But, hey, don't wait on us guys -- do what *you* need to do, and then
show us the code when you're ready.
-- Ted Husted
to another
developer:
How about scoped ActionMappings that pertain to a particular user,
perhaps loaded as part of a customization?
/OT
-- Ted Husted, Husted dot Com, Fairport NY USA.
-- Custom Software ~ Technical Services.
-- Tel 716 737-3463.
-- http://www.husted.com/about/struts/
Jonathan Asbell
a button, and have multiple buttons,
then HTTP is going to submit the i18n label as a value. How do I parse
that in the Action, can I do a reverse lookup in the resource based on
the actor's locale? Or am I overlooking something?
/OT
-- Ted Husted, Husted dot Com, Fairport NY USA.
-- Custom Software
Sorry, I should have said remove rather than pop. It's a hashtable, so
everything is accessed by a token name.
Jonathan Asbell wrote:
If you are pushing and popping how do you get to the bottom ones anyway?
I would like to propose the following individuals for Committer status
on the Struts project:
Oleg V Alexeev
David Winterfeldt
The have both contributed significant new extensions to the Struts
community, and as Committers they can help integrate these extensions
with the nightly
You can send it to me, Francois. I'll post it on my Struts page right
away, and add it to the Contributor's area in the Struts CVS later this
week.
-- Ted Husted, Husted dot Com, Fairport NY USA.
-- Custom Software ~ Technical Services.
-- Tel 716 737-3463.
-- http://www.husted.com/about/struts
in the 1.1 tree. I've also asked Ted Husted to
create a contrib directory at the top-level (in the 1.1 branch) and
manage the posting of other contributions that have not yet been
integrated into the Struts main codebase. (If there is a high volume of
this, we might want to create a jakarta
glad to see so much interest in the framework. The
hard part now may just be keeping up with the latest in Struts
technologies and designs!
-- Ted Husted, Husted dot Com, Fairport NY USA.
-- Custom Software ~ Technical Services.
-- Tel 716 737-3463.
-- http://www.husted.com/about/struts/
If there is no other way ;-(
We just need to think about what happens if someone wants to use the
Bean Factory and the Component Tags.
If the Components are considered a standard part of Struts, is there
anything we can do in the base ActionServlet with an option or a switch
to enable this? Or
Might that include the Bean Factory, Oleg?
Oleg V Alexeev wrote:
I just review your code and I think it can be standard way to
give to ActionServlet ability to support extensions mechanism.
approach to installation turned
upside down, so that people are encouraged to download the WARs first
and install those. Then do some development using only the Struts.jar,
and, finally, (if you really, really have to ;-) build Struts from
scratch.
-- Ted Husted, Husted dot Com, Fairport NY USA
I don't have access to the CVS permission list, and can't check on how
you're setup myself. I could ask root, or wait for Craig to get back.
I did commit a file to the contrib root, and did a fresh checkout to be
sure it made the round trip.
If you have a chance, see if you can commit some
I don't disagree Jonathan. I'm just asking for suggestions as to where
we should place it in the context of the rest of the documentation.
Should it be part of the User Guide or something else? If something
else, what do we call it?
Unless of course you're proposing that we drop the rest of the
I'm starting to bring the FAQ up to date, to help deal with the rising
tide on the user list.
I had started one on the FAQ-o-Matic, but is simply too unreliable.
For now, I've put up what I already had floating around on More About
Struts,
http://husted.com/about/struts/FAQ
and would hope
There are some good instructions for Windows and Unix at the bottom of
http://jakarta.apache.org/site/cvsindex.html
I'm using Mindterm to establish the SSH connection, and then WinCVS.
The instructions there have you set up a tunnel from your localhost, so
in WinCVS you end up using
So, I'm seeing these under /contrib/validator
Are you still having trouble with subdirectories?
[EMAIL PROTECTED] wrote:
dwinterfeldt01/07/06 22:31:18
Added: contrib/validator INSTALL LICENSE README build.xml
build.properties build-test.xml
Log:
David Winterfeldt wrote:
I don't know. I could go either way. I think it
makes sense having the ValidatorForm in
org.apache.struts.action.
+1 on org.apache.struts.action if that's what you want to do.
Are there any issues with breaking backwards
compatibility? I'm for replacing the
Craig R. McClanahan wrote:
* layouts (although there was a separate layouts proposal
a while back that might also be usefully integrated)
+1 - This is actually the name I use for it in my own projects ;-)
-Ted.
Craig R. McClanahan wrote:
Perhaps this might be a Welcome To Struts or What Is Struts document
that someone would read *before* reading the user guide? As someone else
mentioned, maybe we could think of it as a Product Data Sheet type
document.
If so, I think it needs to include at least
JDBC RowSet Support. Update all of the relevant tags to get and set
attributes from a JDBC RowSet (or ResultSet) object ...
So, I'm itching to do something about this. I've been wrapping my
RowSets up in iterators and conventional JB facades, but it's like way
too much work.
I'm just getting
Craig R. McClanahan wrote:
Following this philosophy, we'd create a new tag (perhaps
html:messages?) for the new functionality, and deprecate
html:errors. In addition, we'd need to change the 1.1 implementation of
html:errors so that it did something sensible, even in the face of a
new and
Do we need to worry about the implementation?
Can't we just write against javax.sql.RowSet, and leave the
implementation up to the developer?
Craig R. McClanahan wrote:
In the short term, it might make sense for somebody to write a
javax.sql.RowSet implementation for a read only RowSet.
So now that I've spent some quality time with it, I've finding that Bill
Pfeiffer's rowSet tag plays well with the Struts tags.
http://husted.com/about/struts/rowsettags.htm
I had to make a modification so that it would work with request scope
(rather than page scope), but it's doing the
Oleg,
The sample WAR for the bean-factory and pager tag doesn't include the
source for the sample bean. Would it be possible to include that too?
Also, what does it expect in the way of a database definition. I haven't
been able to get it to run (null pointer exception).
-Ted.
Oleg V Alexeev wrote:
TH The sample WAR for the bean-factory and pager tag doesn't include the
TH source for the sample bean. Would it be possible to include that too?
I think you told about sources for sample application. You can find it
in bean-factory-src.{ zip | tar.gz }
The
I've posted this to More About Struts as a ZIP file with Mathias's
source code and the original post.
http://www.husted.com/about/struts/resources.htm#new
Matthias Bauer wrote:
Hi James, hi Craig
I am not very happy with your approach, because it intermixes presentation with
logic.
Oleg V Alexeev wrote:
Source for bf.beans.Sample is in
http://www.sura.ru/~gonza/bean-factory/bean-factory-src.zip
Thanks, I've got it now.
I think that is because of ActionServlet can not init datasource to
use it with JDBCFactory. struts-config.xml must contain datasource
definition with
Craig R. McClanahan wrote:
One fairly radical idea I've considered is to not use events for this
purpose, but to treat the basic processing that the controller servlet
itself does as a workflow that can be scripted. That way, you could (in
effect) insert your own processXxxx type functions
The standard approach is to create an Action for each of your JSP's and
visit that before displaying the page. In the Action, you can make the
database retreival and populate the ActionForm properties relating to
the HTML controls. For list boxes, there is a handy LabelValue class in
the Example
suppose to insert or update the ActionForm data. Viola, no hidden
fields!
-- Ted Husted, Husted dot Com, Fairport NY USA.
-- Custom Software ~ Technical Services.
-- Tel 716 737-3463.
-- http://www.husted.com/about/struts/
Chuck Stern wrote:
I think this is a great idea. I can't tell you how
1 - 100 of 1013 matches
Mail list logo