JSP获取数据库信息

JSP获取数据库信息,第1张

<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网页怎样从数据库返回多条数据呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9312338.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存