Last modified by Johann Werner on 2011/11/30 09:44

From version 10.1
edited by Johann Werner
on 2011/11/30 09:44
Change comment: There is no comment for this version
To version 8.1
edited by Pascal Robert
on 2007/09/03 14:47
Change comment: There is no comment for this version

Summary

Details

Page properties
Title
... ... @@ -1,1 +1,1 @@
1 -Development-Tips and Tricks
1 +Web Applications-Development-Tips and Tricks
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.jw
1 +XWiki.probert
Content
... ... @@ -4,14 +4,13 @@
4 4  
5 5  There are several different URL's associated with your application, all of which can be retrieved from various methods on WOApplication. Here is a quick cheat sheet of them:
6 6  
7 -* WOApplication.application().applicationBaseURL() = /WebObjects
8 8  * WOApplication.application().baseURL() = /WebObjects
9 -* WOApplication.application().cgiAdaptorURL() = [[http:~~/~~/hostname/cgi-bin/WebObjects>>url:http://hostname/cgi-bin/WebObjects||shape="rect"]]
10 -* WOApplication.application().directConnectURL() = [[http:~~/~~/hostname:port/cgi-bin/WebObjects/MyApplication.woa>>url:http://hostname:port/cgi-bin/WebObjects/MyApplication.woa||shape="rect"]]
8 +* WOApplication.application().applicationBaseURL() = /WebObjects
9 +* WOApplication.application().cgiAdaptorURL() = [[http://hostname/cgi-bin/WebObjects]]
10 +* WOApplication.application().directConnectURL() = [[http://hostname:port/cgi-bin/WebObjects/MyApplication.woa]]
11 11  * WOApplication.application().frameworksBaseURL() = /WebObjects/Frameworks
12 -* WOApplication.application().host() = hostname
13 -* WOApplication.application().servletConnectURL() = [[http:~~/~~/hostname/cgi-bin/WebObjects/MyApplication.woa>>url:http://hostname/cgi-bin/WebObjects/MyApplication.woa||shape="rect"]]
14 -* WOApplication.application().webserverConnectURL() = [[http:~~/~~/hostname/cgi-bin/WebObjects/MyApplication.woa/-port>>url:http://hostname/cgi-bin/WebObjects/MyApplication.woa/-port||shape="rect"]]
12 +* WOApplication.application().servletConnectURL() = [[http://hostname/cgi-bin/WebObjects/MyApplication.woa]]
13 +* WOApplication.application().webserverConnectURL() = [[http://hostname/cgi-bin/WebObjects/MyApplication.woa/-port]]
15 15  
16 16  == Browser IP ==
17 17  
... ... @@ -47,18 +47,22 @@
47 47  It's in the docs, but NSArray's implementation of KeyValueCoding is not really what I was expecting. To get an object at a specific numeric index of an NSArray, you'd use the
48 48  
49 49  {{panel}}
49 +
50 50  objectAtIndex()
51 +
51 51  {{/panel}}
52 52  
53 53  method. So what does
54 54  
55 55  {{panel}}
57 +
56 56  NSArray.valueForKey(String key)
59 +
57 57  {{/panel}}
58 58  
59 59  return?
60 60  
61 -Well, first read the docs: [[file:~~/~~//OSX/Developer/Documentation/WebObjects/Reference/com/webobjects/foundation/NSArray.html#valueForKey(java.lang.String>>url:file:///OSX/Developer/Documentation/WebObjects/Reference/com/webobjects/foundation/NSArray.html#valueForKey(java.lang.String||shape="rect"]])
64 +Well, first read the docs: [[file:///OSX/Developer/Documentation/WebObjects/Reference/com/webobjects/foundation/NSArray.html#valueForKey(java.lang.String]])
62 62  
63 63  It turns out that calling valueForKey on an array is the same as calling valueForKey for each element of that array. So if you have an NSArray of Users, calling valueForKey("email"); will return an NSArray of email addresses. calling valueForKey("documents"); will return an NSArray of NSArrays containing document objects. In hindsight (and from looking at the way WOBuilder handles key paths for arrays) this is kind of obvious. But I think the real lesson here is that it is easy to ignore the docs towards the end of an alphabetical page...
64 64  
... ... @@ -73,4 +73,5 @@
73 73   return (StringUtils.substringBeforeLast(StringUtils.abbreviate((HTMLUtil.stripHTMLTags(htmlString)), numberOfChar), " ")) + "...";
74 74   }
75 75  
79 +
76 76  {{/code}}