我在java后台查询数据库,获得一个列表,我怎样在jsp页面输出这个列表?????java后台程序
if(id!=null&&!id.equals("")&&id.equalsIgnoreCase("13")){
db2.dbConnect();
String sqlStr = "select * from db2admin.news where code='测试数据'";
System.out.println(111111);
db2.setSqlStr(sqlStr);
rst = db2.executeQuery(sqlStr);
System.out.println(222222);
//获得查询列表
while(rst.next()){
String title = rst.getString("title");
String code = rst.getString("code");
System.out.println(title);
System.out.println(code);
request.setAttribute("title",rst.getString("title"));//???怎样传值
request.setAttribute("code",rst.getString("code"));
}
System.out.println(111111);
rst.close();
db2.dbClose();
}
jsp页面尝试获取:
<%=request.getAttribute("title")%>
<%=request.getAttribute("code")%>//我这样做的话,只能得到查询获得的最后一条记录,应该怎样写???
if(id!=null&&!id.equals("")&&id.equalsIgnoreCase("13")){
db2.dbConnect();
String sqlStr = "select * from db2admin.news where code='测试数据'";
System.out.println(111111);
db2.setSqlStr(sqlStr);
rst = db2.executeQuery(sqlStr);
System.out.println(222222);
//获得查询列表
while(rst.next()){
String title = rst.getString("title");
String code = rst.getString("code");
System.out.println(title);
System.out.println(code);
request.setAttribute("title",rst.getString("title"));//???怎样传值
request.setAttribute("code",rst.getString("code"));
}
System.out.println(111111);
rst.close();
db2.dbClose();
}
jsp页面尝试获取:
<%=request.getAttribute("title")%>
<%=request.getAttribute("code")%>//我这样做的话,只能得到查询获得的最后一条记录,应该怎样写???
解决方案 »
- 数据池连接找不到驱动 ...来高手
- SSH在JSP页面显示循环读取的数据
- No appropriate node to show Web view for "*****",but the web server has been started
- jsp技术
- 菜鸟问题,各位大哥帮忙!oracle数据库中的时间格式显示转换问题!!!
- <s:tree>的一个问题,急需解决!!
- 请教opentaps的LocalDispatcher 问题
- 邮件模板中的图片不显示
- 往数据库中插入数值的问题
- 在线等待,boolean的变量转换问题?
- 子路径问题
- 一台电脑上面没有JAVA和其他的编辑工具怎么在电脑的IE上面显示出你的项目
if(id!=null&&!id.equals("")&&id.equalsIgnoreCase("13")){ db2.dbConnect();
String sqlStr = "select * from db2admin.news where code='测试数据'";
System.out.println(111111);
db2.setSqlStr(sqlStr);
rst = db2.executeQuery(sqlStr);
System.out.println(222222);
List list = new ArrayList();
Map map = null
//获得查询列表
while(rst.next()){
map = HashMap();
String title = rst.getString("title");
String code = rst.getString("code");
map.put("title",title);
map.put("code",code);
list.add(map);System.out.println(title);
System.out.println(code); }
request.setAttribute("myList",list);//???怎样传值
System.out.println(111111); rst.close();
db2.dbClose();
}
jsp页面尝试获取:
<%
List list = (java.io.List)request.getAttribute("myList");
for(int i = 0; i < list.size; i++){
Map map = (java.io.Map)list.get(i);
System.out.println(map.get("title"));
System.out.println(map.get("code"));
}
%>
List list = new ArrayList();
while(rst.next()){String title = rst.getString("title");
String code = rst.getString("code");
News news = new News();
news.setTitle(title);
news.setCode(code);
list.add(news);
}
request.setAttribute("list");
jsp中
List list = request.getAttribute("list");
for(Iterator iter = list.iterator(); iter.hasNext();) {
News news = (String)iter.next();
out.println(news.getTitle());
out.println(nes.getCode());
}
if(id!=null&&!id.equals("")&&id.equalsIgnoreCase("13")){ db2.dbConnect();
String sqlStr = "select * from db2admin.news where code='测试数据'";
System.out.println(111111);
db2.setSqlStr(sqlStr);
rst = db2.executeQuery(sqlStr);
System.out.println(222222);
List list = new ArrayList();
Map map = null
//获得查询列表
while(rst.next()){
map = HashMap(); //这句报错,不能执行 提示没有定义HashMap
方法
String title = rst.getString("title");
String code = rst.getString("code");
map.put("title",title);
map.put("code",code);
list.add(map); System.out.println(title);
System.out.println(code);
}
request.setAttribute("myList",list);//???怎样传值
System.out.println(111111);
rst.close();
db2.dbClose();
}
jsp页面尝试获取:
<%
List list = (java.io.List)request.getAttribute("myList");//(java.io.List) (java.io.Map)报错 Map map = (java.io.Map)list.get(i);
System.out.println(map.get("title"));
System.out.println(map.get("code"));
}
%>我的包:
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
import db2.Db2;
jsp配置:
<%@ page language="java" import="java.util.*" import="java.io.*" pageEncoding="utf-8"%>请问具体怎样实现啊,谢谢
List list = (java.io.List)request.getAttribute("myList");
for(int i = 0; i < list.size; i++){
Map map = (java.io.Map)list.get(i);
System.out.println(map.get("title"));
System.out.println(map.get("code"));
}
%>
//(java.io.List)(java.io.Map)提示java.io.List cantnot be resolved to a type.
java.io.Map cantnot be resolved to a type.
应该怎样改???应该怎样写????
List接口是java.util包下的java.util.List
Map接口也是util包下的
List list = (java.util.List)request.getAttribute("myList");
if(id!=null&&!id.equals("")&&id.equalsIgnoreCase("13")){
db2.dbConnect();
String sqlStr = "select * from db2admin.news where code='测试数据'";
System.out.println(111111);
db2.setSqlStr(sqlStr);
rst = db2.executeQuery(sqlStr);
System.out.println(222222);
List list = new ArrayList();
Map map = null
//获得查询列表
while(rst.next()){
map =HashMap(); //这句报错,不能执行 提示没有定义HashMap
//要map = new HashMap()
方法
String title = rst.getString("title");
String code = rst.getString("code");
map.put("title",title);
map.put("code",code);
list.add(map);
System.out.println(title);
System.out.println(code);
}
request.setAttribute("myList",list);//???怎样传值 (这样就可以保存值了)
System.out.println(111111);
rst.close();
db2.dbClose();
}
%>
<%
List list = (java.util.List)request.getAttribute("myList");//(改正)
//(java.io.List) (java.io.Map)报错 Map map = (java.io.Map)list.get(i);
//list 要导util包下的:java.util.List
//由于循环输入,所有要循环输入
for (int i = 0;i < list.size();i++)
{
map = (HashMap)list.get(i);
System.out.println(map.get("title"));
System.out.println(map.get("code"));
}
}
%>注意导包啊,兄弟! List HashMap 都是util包下的!
试试看
一定可以!
^_@
我个人觉的把它当成servlet好点
注意OO,不要乱写一气。
然后读取数据:
List list=new ArrayList();
news n=new news();
while(rst.next())
{
String title = rst.getString("title");
String code = rst.getString("code");
n.setTitle(title);
n.setCode(Code);
list.add(n);
}
request.setAttribute("myList",list);//???怎样传值 (这样就可以保存值了)然后输出数据:
<%
List list = (java.util.List)request.getAttribute("myList");//(改正)
Iterator iter=list.iterator();
while(iter.hasNext())
{
news n=(news)iter.next();
System.out.println(n.getTitle());
System.out.println(n.getCode());
}
%>
29: List list = (java.util.ArrayList)request.getAttribute("myList");
30: for(int i = 0; i < 8; i++){
31: Map map =(java.util.Map)list.get(i);
32: System.out.println(map.get("title"));
33: System.out.println(map.get("code"));
34: } 运行时,页面报错,应该怎么改啊???????、
29: List list = (java.util.ArrayList)request.getAttribute("myList");
30: for(int i = 0; i < 8; i++){
31: Map map =(HashMap)list.get(i);
32: System.out.println(map.get("title"));
33: System.out.println(map.get("code"));
34: } 后台能够运行,可我的页面不显示,于是我在java后台写了一个测试request.setAttribute("code",rst.getString("code"));
在JSP中我用<%=request.getAttribute("code")%>能在页面显示,请教什么错误??
然后读取数据:
List list=new ArrayList();
news n=new news();
while(rst.next())
{
String title = rst.getString("title");
String code = rst.getString("code");
n.setTitle(title);
n.setCode(Code);
list.add(n);
}
request.setAttribute("myList",list);//???怎样传值 (这样就可以保存值了) 然后输出数据:
<%
List list = (java.util.List)request.getAttribute("myList");//(改正)
Iterator iter=list.iterator();
while(iter.hasNext())
{
news n=(news)iter.next();
System.out.println(n.getTitle());
System.out.println(n.getCode());
}
%>
<%
List list = (List)request.getAttribute("name");
for( int i = 0 ; i < list.size ; i ++ ){
%>
<%= list.get(i) %>
<%
}
%>
if(id!=null&&!id.equals("")&&id.equalsIgnoreCase("13")){ db2.dbConnect();
String sqlStr = "select * from db2admin.news where code='测试数据'";
System.out.println(111111);
db2.setSqlStr(sqlStr);
rst = db2.executeQuery(sqlStr);
System.out.println(222222);
List list = new ArrayList();
Map map = null
//获得查询列表
while(rst.next()){
map = new java.util.HashMap();
String title = rst.getString("title");
String code = rst.getString("code");
map.put("title",title);
map.put("code",code);
list.add(map); System.out.println(title);
System.out.println(code);
}
request.setAttribute("myList",list);
System.out.println(111111);
rst.close();
db2.dbClose();
}
jsp页面尝试获取:
<%
java.util.List list = (java.util.List)request.getAttribute("myList");
for(int i = 0; i < list.size; i++){
Map map = (java.util.Map)list.get(i);
System.out.println(map.get("title"));
System.out.println(map.get("code"));
}
%>
你list塞进去的是String类型,你取出来怎么能赋值给Map类型呢?
请注意以下代码在Jsp中书写:<%
if(id!=null&&!id.equals("")&&id.equalsIgnoreCase("13")){
db2.dbConnect();
String sqlStr = "select * from db2admin.news where code='测试数据'";
System.out.println(111111);
db2.setSqlStr(sqlStr);
rst = db2.executeQuery(sqlStr);
System.out.println(222222);
List list = new ArrayList();
Map map = null
//获得查询列表
while(rst.next()){
map =HashMap(); //这句报错,不能执行 提示没有定义HashMap
//要map = new HashMap()
方法
String title = rst.getString("title");
String code = rst.getString("code");
map.put("title",title);
map.put("code",code);
list.add(map);
System.out.println(title);
System.out.println(code);
}
request.setAttribute("myList",list);//???怎样传值 (这样就可以保存值了)
System.out.println(111111);
rst.close();
db2.dbClose();
}
%>
<%
List list = (java.util.List)request.getAttribute("myList");//(改正)
//(java.io.List) (java.io.Map)报错 Map map = (java.io.Map)list.get(i);
//list 要导util包下的:java.util.List
//由于循环输入,所有要循环输入
for (int i = 0;i < list.size();i++)//这里是list.size();不是8;
{
map = (HashMap)list.get(i);
%>
<%=map.get("title")%>
<%=map.get("code")%>
<%
}
}
%>
方案2:
就是我在10楼写的;可行,最后的是把title code 保存在一个bean 对象中,然后添加的list中
然后在jsp页面用jstl 的forEach 循环出来。
这样是最好的解决方法。
对象 ……
使用Logic标签进行遍历输出这两种方法都是遍历一个链表(List,HashMap,Hashtable之类的链表容器),因此需要你在后台进行页面派发前将所有记录都集中放到这个链表容器中,之后将容器打包放入request(即request.setAttribute('resultList', resultList)),之后在JSP页面上取出该容器,循环遍历输出即可。
至于你上面所用的HashMap map = new HashMap()报错,是因为HashMap、HashTable、List、Set等容器类在实例化时需要知道将要放入其中的元素的类型,比如将要放入的Key为String类型,Value也为String类型,则需要这么声明:
HashMap<String, String> map = new HashMap<String, String>();
同理,如果声明List,则应该List<elementType> list = new ArrayList<elementType>();/** Class News */
public class News {/** title */
private String title;/** code */
private String code;/**
* 初始化
*/
public News(final String titleParm, final String codeParm) {
setTitle(titleParm);
setCode(codeParm);
}public String getTitle() {
return title;
}public void setTitle(final String titleParm) {
this.title = titleParm;
}public String getCode() {
return code;
}public void setCode(final String codeParm) {
this.code = codeParm;
}}// java后台程序,查询数据库,将查询结果以List形式放入request中
......
if(id!=null&&!id.equals("")&&id.equalsIgnoreCase("13")){ db2.dbConnect();
String sqlStr = "select * from db2admin.news where code='测试数据'";
db2.setSqlStr(sqlStr);
rst = db2.executeQuery(sqlStr);
List<News> newsList = new ArrayList<News>();
// 获得查询列表
while(rst.next()){
String title = rst.getString("title");
String code = rst.getString("code");
newsList.add(new News(title, code));
}
request.setAttribute("AttributeNewsList", newsList);
rst.close();
db2.dbClose();
}
......JSP页面使用Logic标签进行输出:
<logic:iterate id="newsItem" name="AttributeNewsList" scope="request">
<bean:write name="newsItem" property="title"/>
<bean:write name="newsItem" property="code"/>
</logic:iterate>