请大家帮我看看下面的代码:<%
List<String> lst=new ArrayList<String>();
if(application.getAttribute("MSG")!=null)
{
lst=(List<String>)application.getAttribute("MSG");
for(String str:lst)
{
//out.println(str+"<br/>"); //已知集合中的元素为:[FACE1]、[FACE2]、[FACE3]
out.println(str.substring(str.indexOf("E")+1,str.indexOf("]"))+"<br/>"); //为什么这里仅拿到集合中第一个元素的值即:1
}
}
%>上面是一个JSP代码片段,lst的知通过打印得知是:[FACE1]、[FACE2]、[FACE3],但每次截取后再打印就出问题了,即每次仅能拿到集合中第一个元素的值即[FACE1]的截取值:1,好郁闷啊,在这个小问题上纠结了个把小时了,请大家帮我看看哪儿错了!
List<String> lst=new ArrayList<String>();
if(application.getAttribute("MSG")!=null)
{
lst=(List<String>)application.getAttribute("MSG");
for(String str:lst)
{
//out.println(str+"<br/>"); //已知集合中的元素为:[FACE1]、[FACE2]、[FACE3]
out.println(str.substring(str.indexOf("E")+1,str.indexOf("]"))+"<br/>"); //为什么这里仅拿到集合中第一个元素的值即:1
}
}
%>上面是一个JSP代码片段,lst的知通过打印得知是:[FACE1]、[FACE2]、[FACE3],但每次截取后再打印就出问题了,即每次仅能拿到集合中第一个元素的值即[FACE1]的截取值:1,好郁闷啊,在这个小问题上纠结了个把小时了,请大家帮我看看哪儿错了!
List<String> lst=new ArrayList<String>(); //初始化List集合
if(application.getAttribute("MSG")!=null) //判断传过来的application对象是否为空
{
lst=(List<String>)application.getAttribute("MSG"); //填充List集合
for(String str:lst) //循环遍历List集合
{
//out.println(str+"<br/>"); //此处可以拿到集合中的所有元素
out.println(str.substring(str.indexOf("E")+1,str.indexOf("]"))+"<br/>"); //关键:这里仅拿到集合中第一个元素的值,为什么?
}
}
%>
请大家帮帮我,纠结死了!
答:jiangsq12345 只打印一个1,即:我截取出来的第一个值。不管输入多少还是只打印第一个。
<%@ page pageEncoding="GBK" contentType="text/html;charset=GBK" import="java.util.*,java.text.*"%>
<%
request.setCharacterEncoding("GBK");
List<String> lst=new ArrayList<String>();
if(application.getAttribute("MSG")!=null) //如果发现本来就有数据便还原给集合
{
lst=(List<String>)application.getAttribute("MSG"); //拿到原来的值存储起来
}
lst.add(request.getParameter("txtContent")); //加上新的值
application.setAttribute("MSG",lst); //将集合作为全局变量保存到服务器上
response.sendRedirect("../send.jsp"); //跳转页面显示
%>