我正在尝试在for循环内的请求对象中设置值,并且已成功设置它,但是如果在循环内设置了值,如何获得该值。我尝试过的代码如下-
String str = "";
for(int i=0; i<sizearray.length; i++){
str += sizearray[i];
request.setAttribute("ssize", str.substring(str.lastIndexOf("-") + 1)); // two value set ie. 11 and 19
}
out.println(request.getAttribute("ssize")); // giving one value ie. 19
答案 0 :(得分:1)
您应该能够在for循环外访问request的值,而不会出现任何问题。
我认为真正的问题是,当设置了最后一个值(19)时,您几乎覆盖了初始值(11)。
这是因为两个值都使用相同的键。
答案 1 :(得分:0)
您已获得attribute的当前值,并连接了新属性...尝试类似的操作
String str = "";
for(int i=0; i<sizearray.length; i++){
str += sizearray[i];
request.setAttribute("ssize", request.getAttribute("ssize") + str.substring(str.lastIndexOf("-") + 1));
}
out.println(request.getAttribute("ssize"));
答案 2 :(得分:0)
这是因为您要对所有值使用相同的键,所以您会用新值覆盖旧值。更好的方法是创建一个var finalRecords = Post.find(
{$and:[
{ "title": /*contains substring inside array*/ },
{ "category": /*contains substring inside array*/ },
{ "delivery": {$in: deliveryOptionsArray} },
]}
)
.sort( "title" ).removeDuplicates().limit(25);
,将数据放入其中,然后将此映射作为属性存储到请求对象中。
Map