Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将超链接中的动态字符串作为jsp中的参数传递_Java_Mysql_Jsp_Jakarta Ee_Servlets - Fatal编程技术网

Java 将超链接中的动态字符串作为jsp中的参数传递

Java 将超链接中的动态字符串作为jsp中的参数传递,java,mysql,jsp,jakarta-ee,servlets,Java,Mysql,Jsp,Jakarta Ee,Servlets,我试图在jsp中传递一个动态字符串生成器变量,我正在通过代码生成一个字符串。字符串生成器变量有一些值,但我无法在运行时传递它。它无法获取该值。 变量代码 <% StringBuilder sb = new StringBuilder(""); if (request.getAttribute("Brand") != null) { String Brand[] = (String[]) request.getAttribute("Brand");

我试图在jsp中传递一个动态字符串生成器变量,我正在通过代码生成一个字符串。字符串生成器变量有一些值,但我无法在运行时传递它。它无法获取该值。 变量代码

<% 
    StringBuilder sb = new StringBuilder("");
    if (request.getAttribute("Brand") != null) {
        String Brand[] = (String[]) request.getAttribute("Brand");
        for (String brand : Brand) {
            sb.append("Brand=");
            sb.append(brand);
            sb.append("&");
        }
    }
    if (request.getAttribute("Flavour") != null) {
        String Flavour[] = (String[]) request.getAttribute("Flavour");
        for (String flavour : Flavour) {
            sb.append(flavour);
            sb.append("&");
        }
        sb.trimToSize();
        pageContext.setAttribute("sb", sb);
    }
    out.print("this is string" + sb);
%>

超链接代码

<a href="Filter_Products?${sb}page=${currentPage + 1}" style="color: white;text-decoration: none;">Next</a></td>

您正在将该值设置为pageContext,并尝试通过${}访问。默认情况下,这指的是请求范围。请尝试${pageScope.sb}


除此之外,您的代码看起来很好,但我对&&感到困惑。通常URL参数仅由一个符号分隔(&symbol)。为什么需要2?

您确实需要将sb添加到pageContext、request、session或context作用域,以便能够通过EL表达式访问它-它不会拾取仅在Scriptlet中声明的变量。修改如下内容,使sb始终置于页面上下文中:

if (request.getAttribute("Flavour") != null) {
        String[] flavours = (String[]) request.getAttribute("Flavour");
        for (String flavour : flavours) {
            sb.append(flavour);
            sb.append("&");
        }
        sb.trimToSize();

    }
    pageContext.setAttribute("sb", sb);

我还建议在分配“flavor”字符串值数组时进行更改,以提高代码的清晰度。

我尝试过,但仍然无法获得sbSorry的值。我的错
sb
很好。不管怎样,你得到了什么错误?当您尝试查看页面源时,超链接的值是多少?很抱歉,当我像${sb}这样写时,无法打印sb的值。这不是最适合在评论部分吗?那么这是空的吗?或者你有什么错误吗?out.print()是否写入一些值?代码中最后一行的输出是什么?你得到的超链接的html代码是什么?输出的是什么?
out.print(“这是字符串”+sb)?这是stringBrand=最佳营养和品牌=终极营养和品牌=肌肉燃烧&&