[英]Passing dynamic string in hyperlink as parameter in jsp
我试图在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>
您确实需要将sb添加到pageContext,请求,会话或上下文范围中,以便能够通过EL表达式访问它-它不会选择仅在scriptlet中声明的变量。 进行如下修改,以便始终将sb放入pageContext中:
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);
我还建议进行更改,以在分配“风味” String值数组时提高代码的清晰度。
您正在将值设置为pageContext并尝试通过$ {}访问。 默认情况下,这是指请求范围。 试试$ {pageScope.sb}
除此之外,您的代码看起来还不错,但是我对&&感到困惑。 通常,URL参数仅由一个&符号分隔。 为什么需要2?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.