<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#a8c7ce">
<tr align="center" height="25" bgcolor="d3eaef">
<td width="5%">
编号
</td>
<td width="10%">
标题
</td>
<td width="23%">
内容
</td>
<td width="10%">
发表日期
</td>
<td width="16%">
基本 *** 作
</td>
</tr>
<%
//获取新闻信息集合,newList是从后台返回来的集合变量
List nList = (List) sessiongetAttribute("newList");
NewsEntity new = null;
if (nListsize() <= 0) {
%>
<tr height="22" bgcolor="#FFFFFF" align="center">
<td colspan="9" align="center">
暂无新闻信息
</td>
</tr>
<%
} else {
for (int i = 0; i < nListsize(); i++) {
new = (NewsEntity) mListget(i);
%>
<tr height="22" bgcolor="#FFFFFF" align="center">
<td>
<%=newgetId() %>
</td>
<td>
<%=newgetTitle() %>
</td>
<td>
<%=newgetContent() %>
</td>
<td>
<%=newtime() %>
</td>
<td>
<a href="MusicServletforward=getNewsDetailById&ID=<%=newgetId()%>" >
<span class="STYLE2">编辑</span> </a> |
<a href="MusicServletforward=doDelNewsById&ID=<%=newgetId()%>"
onclick="return confirm('您确定要删除该条信息吗?');"><span
class="STYLE2">删除</span> </a>
</td>
</tr>
<%
}
}
%>
</table>
但是还有一种方法通过js获取下拉框的值<select name="sel" onchange="check()"> -- 增加onchange事件<%while (rsnext()) {%><option value=""> -- 这里没有给选项赋值-- 改为,如:<option value="<%=rsgetString(1)%>"><%=rsgetString(1)%></option> <%}%></select><script type="text/javascript">function check(){var id = documentgetElementsByName("sel")value;-- 获取下拉框的值如:拼接url打开页面,var url = 'xxxxdoid=' + id;//注,具体的url你要自己拼写,我这个是列子,不能用的方法1,在本窗口打开页面:windowlocation = url ;方法2,新窗口打开页面windowopen(url)}</script> 追问: 我终于发现了,能读取数据,可是把读取的数据放入数据库中就有问题了,难道还要转码才行吗? 回答: 当然`~~ 追问: 页面编码是gb2312那我要怎样转码呢? 回答: 首先你要知道你的数据库的是什么编码的,你页面的编码要符合你数据库的编码,这样的转码才是正确的 追问: 现在我不是从页面读取数据了,而是直接在程序中测试DatevalueOf("1987-3-7")比如我用这样的方法把这个数据放到数据库中去就自动变成了1905-6-1了,感觉太怪了这个就和编码无关了 回答: 你具体的代码我也不知道,也不好给你说,给你个UTF-8转GB2312的代码吧private String utf8Togb2312(String str){StringBuffer sb = new StringBuffer();for(int i=0; i<strlength(); i++) {char c = strcharAt(i);switch (c) {case '+':sbappend(' ');break;case '%':try {sbappend((char)IntegerparseInt(strsubstring(i+1,i+3),16));}catch (NumberFormatException e) {throw new IllegalArgumentException();}i += 2;break;default:sbappend(c);break;}}String result = sbtoString();String res=null;try{byte[] inputBytes = resultgetBytes("8859_1");
编写一个有get,set方法的javaBean 把从数据库取出的值一一放如javaBean实例中,在通过while(rsnext)把javaBean写入ArrayList数组中。。然后用requestsetAttribute("名称",数组对象)将数组设置进页面隐含对象里
在页面可以使用JSTL标签<c:foreach><c:out></c:out></c:foreach>
将数组中的值打印出来
这样是可以循环打印出你数据库所有记录的。
至于你说的:PS:我用普通的resultset只能返回查找到的第一个数据所在行所有信息,然后接下来的数据他就不查找了
是因为你没有rsnext。记录当然是在第一条了。
呵呵~那就更怪不得出现这样的错误了。首先你这样做的话。你的方法返回值应该是一个ArrayList集合。其次你在while循环体里应该是将bean的实例对象加入到ArrayList集合中。
你可以在方法前声明一个集合。Collection coll=new ArrayList()
把return bd; 删掉。换成colladd(bd);
在在循环外return coll;这样你的方法是返回一个集合;
然后在调用方法后把coll设置进request隐含对象里。在页面就可以直接使用了。后面在使用我上面跟你说的<c:foreach><c:out></c:out></c:foreach>
这样你的jsp页面将不会有任何逻辑处理代码。只有纯html代码。是比较符合规范的。
你可以在网上查下jstl标签的<c:foreach><c:out>的使用方法。
这个问题可能的原因有很多。
1查询数据的sql就只查出来一条数据。
2查询的sql查出来了是多条数据,对结果封装返回时有误,只返回了一条。
3页面中循环逻辑有误。
具体最好是把代码贴上来,大家一起看下。
如果有帮助到你,请点击采纳。
以上就是关于JSP获取数据库信息全部的内容,包括:JSP获取数据库信息、在jsp中下拉框中如何获取数据库中的值、JSP网页怎样从数据库返回多条数据呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)