KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jfox > manager > demo > NumberGuessAction


1 /*
2  * JFox - The most lightweight Java EE Application Server!
3  * more details please visit http://www.huihoo.org/jfox or http://www.jfox.org.cn.
4  *
5  * JFox is licenced and re-distributable under GNU LGPL.
6  */

7 package org.jfox.manager.demo;
8
9 import java.util.Random JavaDoc;
10
11 import org.jfox.mvc.ActionSupport;
12 import org.jfox.mvc.InvocationContext;
13 import org.jfox.mvc.Invocation;
14 import org.jfox.mvc.PageContext;
15 import org.jfox.mvc.SessionContext;
16 import org.jfox.mvc.annotation.ActionMethod;
17 import org.jfox.framework.annotation.Service;
18
19 /**
20  * number guess action
21  *
22  * @author <a HREF="mailto:jfox.young@gmail.com">Young Yang</a>
23  */

24 @Service(id = "numberguess")
25 public class NumberGuessAction extends ActionSupport {
26
27     @ActionMethod(successView = "demo/numberguess.vhtml", invocationClass = NumberGuessInvocation.class)
28     public void doGetView(InvocationContext invocationContext) throws Exception JavaDoc {
29         NumberGuessInvocation invocation = (NumberGuessInvocation)invocationContext.getInvocation();
30
31         int count = 0;
32         boolean success = false;
33         String JavaDoc hint = "";
34
35         SessionContext sessionContext = invocationContext.getSessionContext();
36         if (!sessionContext.containsAttribute("count")) { //start
37
count = 0;
38             int answer = Math.abs(new Random JavaDoc().nextInt() % 100) + 1;
39             sessionContext.setAttribute("answer", answer);
40             sessionContext.setAttribute("count", 0);
41         }
42         else {
43             int answer = (Integer JavaDoc)sessionContext.getAttribute("answer");
44             count = (Integer JavaDoc)sessionContext.getAttribute("count");
45             int guessNO = invocation.getGuessNO();
46             if (guessNO == answer) { // success
47
success = true;
48                 sessionContext.removeAttribute("count");
49                 sessionContext.removeAttribute("answer");
50             }
51             else { // failed
52
if (guessNO < answer) {
53                     hint = "higher";
54                 }
55                 else {
56                     hint = "lower";
57                 }
58                 count++;
59                 sessionContext.setAttribute("count", count);
60             }
61         }
62         
63         PageContext pageContext = invocationContext.getPageContext();
64         pageContext.setAttribute("success", success);
65         pageContext.setAttribute("count", count);
66         pageContext.setAttribute("hint", hint);
67
68     }
69
70     @ActionMethod(successView = "demo/numberguess.vhtml", invocationClass = NumberGuessInvocation.class)
71     public void doPostView(InvocationContext invocationContext) throws Exception JavaDoc {
72         doGetView(invocationContext);
73     }
74
75     public static class NumberGuessInvocation extends Invocation {
76         private int guessNO = 0;
77
78         public int getGuessNO() {
79             return guessNO;
80         }
81
82         public void setGuessNO(int guessNO) {
83             this.guessNO = guessNO;
84         }
85     }
86
87     public static void main(String JavaDoc[] args) {
88
89     }
90 }
91
Popular Tags