1 7 package org.jfox.manager.demo; 8 9 import java.util.Random ; 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 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 { 29 NumberGuessInvocation invocation = (NumberGuessInvocation)invocationContext.getInvocation(); 30 31 int count = 0; 32 boolean success = false; 33 String hint = ""; 34 35 SessionContext sessionContext = invocationContext.getSessionContext(); 36 if (!sessionContext.containsAttribute("count")) { count = 0; 38 int answer = Math.abs(new Random ().nextInt() % 100) + 1; 39 sessionContext.setAttribute("answer", answer); 40 sessionContext.setAttribute("count", 0); 41 } 42 else { 43 int answer = (Integer )sessionContext.getAttribute("answer"); 44 count = (Integer )sessionContext.getAttribute("count"); 45 int guessNO = invocation.getGuessNO(); 46 if (guessNO == answer) { success = true; 48 sessionContext.removeAttribute("count"); 49 sessionContext.removeAttribute("answer"); 50 } 51 else { 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 { 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 [] args) { 88 89 } 90 } 91 | Popular Tags |