2012-02-28 4 views
0

У меня есть 2 разных типа потока для строки состояния поверх моего веб-сайта. Мне нужно передать значение этому классу состояния, чтобы он знал, какой поток следует отслеживать в зависимости от выбора пользователя на главной странице. Если ID = 1, а затем следуйте 1 стилю потока, а если ID = 2, то следуйте другому стилю потока. А также, если ID = 1 и step = 2, чем я должен diplay один стиль потока со вторым шагом в строке состояния. Я застрял, как я могу заставить этот поток перемещаться с одной страницы на другую, когда пользователь делает с 1 страницей и переходит к другому. Как я могу отслеживать это и отображать правильную строку состояния в верхней части страницы. Как я могу получить этот статус и шаг в потоке, чтобы отобразить его прямо на этой конкретной странице. Я сделал это до сих пор. Мне нужно, чтобы какой-либо держатель содержимого jsp на странице jsp отображал, что когда-либо получаю возврат от этого URL-соединения, и мне нужно передать идентификатор этому классу, чтобы увидеть, какой поток мне нужно выполнить. Любая помощь будет большой ..Строка состояния в 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-кода.

В случае, если я неправильно понял ваш вопрос, вы можете предоставить лучшее описание того, что вы действительно хотите достичь, что вы пытались до сих пор, и почему ваши попытки не удались.

Смежные вопросы