如何从循环外的请求属性获取值

时间:2019-01-28 06:35:21

标签: java hibernate jsp servlets

我正在尝试在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

3 个答案:

答案 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