You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by mu...@apache.org on 2007/06/11 21:36:57 UTC

svn commit: r546231 - in /struts/struts2/trunk/apps/showcase/src/main/webapp/interactive: example-action.jsp index.jsp jsp_3.jsp jsp_4.jsp ognl_9.jsp

Author: musachy
Date: Mon Jun 11 12:36:57 2007
New Revision: 546231

URL: http://svn.apache.org/viewvc?view=rev&rev=546231
Log:
WW-1848 Showcase, create an interactive OGNL demo

Added:
    struts/struts2/trunk/apps/showcase/src/main/webapp/interactive/jsp_3.jsp
    struts/struts2/trunk/apps/showcase/src/main/webapp/interactive/jsp_4.jsp
Modified:
    struts/struts2/trunk/apps/showcase/src/main/webapp/interactive/example-action.jsp
    struts/struts2/trunk/apps/showcase/src/main/webapp/interactive/index.jsp
    struts/struts2/trunk/apps/showcase/src/main/webapp/interactive/ognl_9.jsp

Modified: struts/struts2/trunk/apps/showcase/src/main/webapp/interactive/example-action.jsp
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/apps/showcase/src/main/webapp/interactive/example-action.jsp?view=diff&rev=546231&r1=546230&r2=546231
==============================================================================
--- struts/struts2/trunk/apps/showcase/src/main/webapp/interactive/example-action.jsp (original)
+++ struts/struts2/trunk/apps/showcase/src/main/webapp/interactive/example-action.jsp Mon Jun 11 12:36:57 2007
@@ -5,41 +5,41 @@
     response.setDateHeader ("Expires", 0); //prevents caching at the proxy server
 %>
 <pre style="font-style: normal;">
-package org.apache.struts2.showcase.action;
+<span class="kw">package</span> org.apache.struts2.showcase.action;
 
-import java.util.Arrays;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+<span class="kw">import</span> java.util.Arrays;
+<span class="kw">import</span> java.util.Date;
+<span class="kw">import</span> java.util.HashMap;
+<span class="kw">import</span> java.util.List;
+<span class="kw">import</span> java.util.Map;
 
-import com.opensymphony.xwork2.ActionSupport;
+<span class="kw">import</span> com.opensymphony.xwork2.ActionSupport;
 
-public class ExampleAction extends ActionSupport {
-    public static final String CONSTANT = "Struts Rocks!";
+<span class="kw">public class</span> ExampleAction <span class="kw">extends</span> ActionSupport {
+    <span class="kw">public static final</span> String CONSTANT = "Struts Rocks!";
         
-    public static Date getCurrentDate() {
+    <span class="kw">public static</span> Date getCurrentDate() {
         return new Date();
     }
     
-    public String getName() {
+    <span class="kw">public</span> String getName() {
         return "John Galt";
     }
 
-    public String[] getBands() {
+    <span class="kw">public</span> String[] getBands() {
         return new String[] { "Pink Floyd", "Metallica", "Guns & Roses" };
     }
 
-    public List&lt;String> getMovies() {
+    <span class="kw">public</span> List&lt;String&gt; getMovies() {
         return Arrays.asList("Lord of the Rings", "Matrix");
     }
 
-    public Book getBook() {
-        return new Book("Iliad", "Homer");
+    <span class="kw">public</span> Book getBook() {
+        <span class="kw">return</span> new Book("Iliad", "Homer");
     }
 
-    public Map&lt;String, Book> getBooks() {
-        Map&lt;String, Book> books = new HashMap&lt;String, Book&gt;();
+    <span class="kw">public</span> Map&lt;String, Book&gt; getBooks() {
+        Map&lt;String, Book&gt; books = new HashMap&lt;String, Book&gt;();
         books.put("Iliad", new Book("Iliad", "Homer"));
         books.put("The Republic", new Book("The Replublic", "Plato"));
         books.put("Thus Spake Zarathustra", new Book("Thus Spake Zarathustra",
@@ -48,28 +48,28 @@
     }
 }
 
-class Book {
-    private String title;
-    private String author;
+<span class="kw">class</span> Book {
+    <span class="kw">private</span> String title;
+    <span class="kw">private</span> String author;
 
-    public Book(String title, String author) {
+    <span class="kw">public</span> Book(String title, String author) {
         this.title = title;
         this.author = author;
     }
 
-    public String getTitle() {
-        return title;
+    <span class="kw">public</span> String getTitle() {
+        <span class="kw">return</span> title;
     }
 
-    public void setTitle(String title) {
+    <span class="kw">public void</span> setTitle(String title) {
         this.title = title;
     }
 
-    public String getAuthor() {
+    <span class="kw">public</span> String getAuthor() {
         return author;
     }
 
-    public void setAuthor(String author) {
+    <span class="kw">public void</span> setAuthor(String author) {
         this.author = author;
     }
 }

Modified: struts/struts2/trunk/apps/showcase/src/main/webapp/interactive/index.jsp
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/apps/showcase/src/main/webapp/interactive/index.jsp?view=diff&rev=546231&r1=546230&r2=546231
==============================================================================
--- struts/struts2/trunk/apps/showcase/src/main/webapp/interactive/index.jsp (original)
+++ struts/struts2/trunk/apps/showcase/src/main/webapp/interactive/index.jsp Mon Jun 11 12:36:57 2007
@@ -19,7 +19,7 @@
         var ognlBase = "${ognlBase}";
         var jspBase = "${jspBase}";
         var ognlCount = 10;
-        var jspCount = 3;
+        var jspCount = 5;
         
         dojo.addOnLoad(function() {
             var classSrc = dojo.byId("classSrc");
@@ -33,6 +33,7 @@
         });
         
         function startOgnl() {
+            selectOGNLTab();
             index = -1;
             runningOgnl = true;
             change(1);
@@ -72,6 +73,10 @@
         function selectJSPTab() {
             dojo.widget.byId("mainTabContainer").selectTab("jspTab");
         }
+        
+        function selectOGNLTab() {
+            dojo.widget.byId("mainTabContainer").selectTab("ognlTab");
+        }
        
         function change(delta) {
             index+=delta;
@@ -170,6 +175,10 @@
         pre {
             font-family:Verdana,Geneva,Arial,Helvetica,sans-serif;
             font-style: italic;
+        }
+        span.kw {
+            color: rgb(127, 0, 85);
+            font-weight: bold;;
         }
     </style>
 </head>

Added: struts/struts2/trunk/apps/showcase/src/main/webapp/interactive/jsp_3.jsp
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/apps/showcase/src/main/webapp/interactive/jsp_3.jsp?view=auto&rev=546231
==============================================================================
--- struts/struts2/trunk/apps/showcase/src/main/webapp/interactive/jsp_3.jsp (added)
+++ struts/struts2/trunk/apps/showcase/src/main/webapp/interactive/jsp_3.jsp Mon Jun 11 12:36:57 2007
@@ -0,0 +1,65 @@
+<%
+    request.setAttribute("decorator", "none");
+    response.setHeader("Cache-Control","no-cache"); //HTTP 1.1
+    response.setHeader("Pragma","no-cache"); //HTTP 1.0
+    response.setDateHeader ("Expires", 0); //prevents caching at the proxy server
+%>
+<p>
+    <b><i>set</i> tag</b>
+</p>
+<p>
+    The <i>set</i> tag sets the variable with the name specified in the <i>name</i> attribute to 
+    the value specified in the <i>value</i> attribute in the scope
+    entered in the <i>scope</i> attribute. The available scopes are:
+    <ul>
+        <li>application - application scope according to servlet spec</li>
+        <li>session - session scope according to servlet spec</li>
+        <li>request - request scope according to servlet spec</li>
+        <li>page - page scope according to servlet sepc</li>
+        <li>action - the value will be set in the request scope and Struts' action context</li>
+        
+    </ul>
+</p>
+<p>    
+    This example sets <i>favouriteBand</i> in the request scope to the first element of the <i>bands</i> property:
+</p>
+<p>
+    <pre id="example0">
+        &lt;s:set name="favouriteBand" value="bands[0]" /&gt;
+        &lt;s:property value="#favouriteBand" /&gt;
+    </pre>
+</p>
+<p>
+    <a href="#" onclick="execJSP('example0')">Do it for me</a>
+</p>
+<p>
+    <b><i>url</i> tag</b>
+</p>
+<p>
+    The <i>url</i> tag is used to build urls (who would have guessed!). To build an url mapping to
+    an action, set the <i>namespace</i> and <i>action</i> attributes. The url will be stored under
+    the name specified in the <i>id</i> attribute. <b>url tag uses the <i>id</i> attribute while 
+    the <i>set</i> tag uses name</b>. To specify a value (no action lookup), just use the <i>value</i>
+    attribute. <i>param</i> tags can be nested inside the <i>url</i> tag to add parameters to the url.
+</p>
+<p>    
+    First link creates a url that maps to an action, second one creates a url to google, passing one parameter:
+</p>
+<p>
+    <pre id="example1">
+        &lt;s:url id="evalAction" namespace="/nodecorate" action="jspEval" /&gt;
+        &lt;s:a href="%{#evalAction}" &gt;Eval&lt;/s:a&gt;
+        
+        &lt;s:url id="google" value="http://www.google.com" &gt;
+            &lt;s:param name="q" value="%{'Struts 2'}" /&gt; 
+        &lt;/s:url&gt;
+        &lt;s:a href="%{#google}" &gt;Eval&lt;/s:a&gt;
+    </pre>
+</p>
+<p>
+   <a href="#" onclick="execJSP('example1')">Do it for me</a>
+</p>
+<p>
+    <a href="#" onclick="window.open('http://struts.apache.org/2.x/docs/set.html')">[More on the <i>set</i> tag]</a>
+    <a href="#" onclick="window.open('http://struts.apache.org/2.x/docs/url.html')">[More on the <i>url</i> tag]</a>
+</p>
\ No newline at end of file

Added: struts/struts2/trunk/apps/showcase/src/main/webapp/interactive/jsp_4.jsp
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/apps/showcase/src/main/webapp/interactive/jsp_4.jsp?view=auto&rev=546231
==============================================================================
--- struts/struts2/trunk/apps/showcase/src/main/webapp/interactive/jsp_4.jsp (added)
+++ struts/struts2/trunk/apps/showcase/src/main/webapp/interactive/jsp_4.jsp Mon Jun 11 12:36:57 2007
@@ -0,0 +1,16 @@
+<%
+    request.setAttribute("decorator", "none");
+    response.setHeader("Cache-Control","no-cache"); //HTTP 1.1
+    response.setHeader("Pragma","no-cache"); //HTTP 1.0
+    response.setDateHeader ("Expires", 0); //prevents caching at the proxy server
+%>
+<p>
+    <b>More on JSP tags</b>
+</p>
+<p>
+  Struts 2 provides many more tags which you can learn about 
+  <a href="#" onclick="window.open('http://cwiki.apache.org/confluence/display/WW/Tag+Reference')">here</a>
+</p>
+<br/>
+You can keep playing with the JSP console or 
+<a href="#" onclick="startOgnl()">Start OGNL Interactive Demo</a>
\ No newline at end of file

Modified: struts/struts2/trunk/apps/showcase/src/main/webapp/interactive/ognl_9.jsp
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/apps/showcase/src/main/webapp/interactive/ognl_9.jsp?view=diff&rev=546231&r1=546230&r2=546231
==============================================================================
--- struts/struts2/trunk/apps/showcase/src/main/webapp/interactive/ognl_9.jsp (original)
+++ struts/struts2/trunk/apps/showcase/src/main/webapp/interactive/ognl_9.jsp Mon Jun 11 12:36:57 2007
@@ -14,4 +14,5 @@
 <p>
     To learn more see the <a href="#" onclick="window.open('http://www.ognl.org/2.6.9/Documentation/html/LanguageGuide/index.html')">[OGNL Documentation]</a>
 </p>
+You can keep playing with the OGNL console or 
 <a href="#" onclick="startJSP()">Start JSP Interactive Demo</a>