Java 将超链接中的动态字符串作为jsp中的参数传递
我试图在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");
<%
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=最佳营养和品牌=终极营养和品牌=肌肉燃烧&&