2012-02-28 5 views
0

ステータスバーには、私のwebageの上に2種類のフローがあります。このステータスバークラスに値を渡して、メインページのユーザー選択に応じてどのフローを追跡するかを知らせなければなりません。 ID = 1の場合は、フローの1つのスタイルに従い、ID = 2の場合は他のフローのスタイルに従います。またID = 1とステップ= 2の場合は、ステータスバーに2番目のステップで1つのスタイルのフローを表示する必要があります。ユーザーが1ページで完了すると、そのフローを別のページに移動する方法がわかりません。他に移動する。それを追跡し、正しいステータスバーをページ上部に表示するにはどうすればよいですか。どのようにしてその状態を取得し、その特定のページに表示するためにフローに入ることができますか。私はこれまでこれを行ってきましたが、jspページにjspのコンテンツ所有者が必要でしたが、そのURL接続からの戻り値を表示するために、このクラスにIDを渡す必要があります。すべてのヘルプは、私は、ユーザーがページを横断しながら、どこかのステータス(または状態)を格納する必要があると信じています説明からJavaのステータスバー

public class StatusBar 
{ 
    private static final String STATUS_URL = 'http://10.1.2.3:8080/status'; 

    private final String buffer; 
    public String toString(){ return buffer; } 

    private final String id; 
    private final String step; 


    private ProgressBar(Create create) 
    { 
     id = Create.pbid; 
     step = Create.step; 

     String response = ""; 

      Map<String, String> m = new HashMap<String, String>(); 
      m.put("id", id); 
      m.put("step", step); 

      String query = buildQuery(m); 

      URL url = new URL(STATUS_URL); 

      URLConnection uc = url.openConnection(); 
      uc.setDoOutput(true); 
      uc.setAllowUserInteraction(false); 
      uc.setConnectTimeout(5000); 
      uc.setReadTimeout(5000); 

      PrintStream ps = new PrintStream(uc.getOutputStream()); 
      ps.print(query); 
      ps.close(); 

      BufferedReader br = new BufferedReader(new InputStreamReader(uc.getInputStream(), "UTF-8")); 
      StringCreate sb = new StringCreate(); 
      String line; 

      while((line = br.readLine()) != null) 
      { 
       sb.append(line); 
       sb.append("\n"); 
      } 

      br.close(); 
      response = sb.toString(); 

      buffer = ""; 
    } 


    private static final String buildQuery(Map<String, String> args) throws UnsupportedEncodingException 
    { 
     StringCreate sb = new StringCreate(); 

     for(Map.Entry<String, String> entry : args.entrySet()) 
     { 
      sb.append(URLEncoder.encode(entry.getKey(), "UTF-8"));   
      sb.append('='); 
      sb.append(URLEncoder.encode(entry.getValue(), "UTF-8"));   
      sb.append('&'); 
     } 

     return sb.toString().substring(0, sb.length() - 1); 
    } 


    public static class Create 
    { 
     private String id; 
     private String step; 

     public Create(){} 

     public Create id(String val) 
     { 
      id = val; 
      return this; 
     } 

     public Create step(int val) 
     { 
      step = String.valueOf(val); 
      return this; 
     } 

     public StatusBar build() 
     { 
       return new StatusBar(this); 

     } 
    } 
} 

答えて

3

..素晴らしいことです。

これは何かHTTP Sessionです。そこに値を格納することができ、サイトのユーザーセッション中にアクセスできます。

JSPでは、JSTL:<c:set var="foo" value="bar" scope="session"/>を使用してセッションで何かを設定し、${foo}を使用してアクセスします(値を取得し直す)。

これをステータスバーのJSPコードで使用してください。

あなたの質問に誤解があった場合は、本当に達成したいこと、これまでに試したこと、失敗した理由をより詳しく説明できます。

関連する問題