我的网站顶部有两种不同的状态栏流程。我必须将值传递给此状态栏类,以便根据主页中的用户选择让它知道要遵循的流程。如果ID = 1,则遵循1种流式,如果ID = 2,则遵循其他流式。而且,如果ID = 1且步数= 2,我必须在状态栏中显示第二步的一种流式。当我用户完成1页时,我怎么能让这个流从一个页面移动到另一个页面转移到其他人。如何跟踪并在页面顶部显示正确的状态栏。如何获取该状态并进入流程以在该特定页面上显示它。到目前为止,我已经完成了这个操作,我需要在jsp页面中显示一些jsp内容,以显示从该url连接返回的内容,我需要将id传递给此类以查看我必须遵循的流程。任何帮助都会很棒..
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 );
}
}
}
答案 0 :(得分:3)
从您的描述中我相信您需要在用户遍历您的网页时将状态(或状态)存储在某处。
这件事是HTTP Session。您可以在那里存储值,并且可以在您网站上的用户会话期间访问这些值。
在JSP中,您使用JSTL在会话中设置了一些内容:<c:set var="foo" value="bar" scope="session"/>
并使用${foo}
访问它(检索值)。
在状态栏JSP代码中使用它。
如果我误解了你的问题,你可以更好地描述你真正想要达到的目标,你到目前为止所尝试的内容,以及你的尝试失败的原因。