如何将数据库中的值经过servlet传入到jsp页面,并且用EL表达式显示出值

方法一;通过id查询某一数据库表中具体的行,将值封装在相应的对象中,如下面的对象Notice

servlet中

String noticeId=request.getParameter("noticeId");
Notice displayEditnotice=publicnoticeservice.displayEditnotice(Integer.valueOf(noticeId));
request.setAttribute("list_displayEditnotice", displayEditnotice);
System.out.println("displayEditnotice="+displayEditnotice);
request.getRequestDispatcher("Editnotice.jsp").forward(request, response);

Editnotice.jsp页面

<form....>

<table>

<tr>
<td>标题:</td>
<td><input type="text" id="title" name="title" value="${list_displayEditnotice.getTitle()}"></td>-
</tr>
<tr>
<td>内容:</td>
<td><textarea cols="50" rows="10" name="context" style="border:#FF0000 1px solid;overflow:visible;">${list_displayEditnotice.getContext()}</textarea></td>
</tr>
<tr>
<td><input type="submit" value="保存公告"></td>
</tr>
</table>
</form>

dao中接口的实现方法

public Notice displayEditnotice(int noticeId) {
Notice notice=null;
String sql="select noticeId,title,context,publicerId,publicer,writeDate from notice where noticeId=?";
conn=super.getConnection();
try {
pstmt=conn.prepareStatement(sql);
pstmt.setInt(1, noticeId);
rs=pstmt.executeQuery();
while(rs.next()){
notice=new Notice();
notice.setNoticeId(rs.getInt("noticeId"));
notice.setTitle(rs.getString("title"));
notice.setContext(rs.getString("context"));
notice.setPublicerId(rs.getInt("publicerId"));
notice.setPublicer(rs.getString("publicer"));
notice.setWriteDate(rs.getTimestamp("writeDate"));
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
super.closeAll(conn, pstmt, stmt, rs);
}

return notice;
}

方法二:将我数据库中表的所有数据显示出来,则将每一行的值封装在List集合中,在jsp页面用<c:forEach><forEach>迭代显示出来

注意要加标签库:<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

servlet中

List<Notice> displaynotice=publicnoticeservice.displaypublicnotice();
request.setAttribute("list_displaynotice",displaynotice);
request.getRequestDispatcher("displaypublicnotice.jsp").forward(request, response);

displaypublicnotice.jsp

<table border="0"cellspacing="0" cellpadding="0">
<tr>
<td style="width:50px;text-align: center">序号</td>
<td style="width:170px;text-align: center">标题</td>
<td style="width:400px;text-align: center">内容</td>
<td style="width:70px;text-align: center">发布人</td>
<td style="width:200px;text-align: center">发布时间</td>
<td style="width:120px;text-align: center">操作</td>
</tr>

<c:forEach items="${list_displaynotice}" var="notice" varStatus="i">
<tr style="background:#7FFFD4">
<td style="width:50px;text-align: center">${i.count} </td>
<td style="width:100px;text-align: center">${notice.title}</td>
<td style="text-align: center"><font style="font-size:12px;">${notice.context}</font></td>
<td style="text-align: center">${notice.publicer}</td>
<td style="width:100px;text-align: center">${notice.writeDate}</td>
<td style="text-align: center"><a href="PublicNoticeServlet?method=deletenotice&noticeId=${notice.noticeId}" target="middle" style="TEXT-DECORATION:none">删除</a>
|<a href="PublicNoticeServlet?method=editnotice&noticeId=${notice.noticeId}"
target="middle" style="TEXT-DECORATION:none">编辑</a>
</td>
</tr>
</c:forEach>
</table>

dao中接口的实现方法

private Connection conn=null;
private PreparedStatement pstmt=null;
private Statement stmt=null;
private ResultSet rs=null;

public List<Notice> displaypublicnotice() {
List<Notice> list=new ArrayList<Notice>();
Notice notice=null;
String sql="select noticeId,title,context,publicerId,publicer,writeDate from notice";
conn=super.getConnection();
try {
pstmt=conn.prepareStatement(sql);
rs=pstmt.executeQuery();
while(rs.next()){
notice=new Notice();
notice.setNoticeId(rs.getInt("noticeId"));
notice.setTitle(rs.getString("title"));
notice.setContext(rs.getString("context"));
notice.setPublicerId(rs.getInt("publicerId"));
notice.setPublicer(rs.getString("publicer"));
notice.setWriteDate(rs.getTimestamp("writeDate"));
list.add(notice);
}
} catch (SQLException e) {

e.printStackTrace();
}finally{ // 7。关闭连接
super.closeAll(conn, pstmt, stmt, rs);
}

return list;
}

原文地址:https://www.cnblogs.com/97chen629/p/10680517.html

时间: 2024-11-10 01:31:14

如何将数据库中的值经过servlet传入到jsp页面,并且用EL表达式显示出值的相关文章

后端model传入前端JSP页面中的值判断后再取值

所遇到的问题后端model传入前端JSP页面中的值通过foreach循环内要满足条件才能取值给Div中,我们知道jsp页面中可以直接用EL表达式取值,格式就是${"model中传来的数据"},但是我要把传过来的数据判断后再取值就遇到了问题,通过查百度发现了一个方法,下面就分享一下. 1 <c:forEach var="v" items="${page.objectList}"> 2 <tr> 3 <td style=

JSP中的内置标记(JSP动作)和 EL表达式

一.JSP的内置标记(JSP动作) (一)JSP的内置标记都是以<jsp: 开始标记的 一般会用到<jsp:useBean/>,<jsp:setProperty/>,<jsp:getProperty/>,这三种是配合使用的 示例图: 显示效果: 再示例一个include : 静态包含:<%@include%> 动态包含:<jsp:include/> 先定义一个要被包含的文件main.jsp: 显示效果如下: <jsp:forward/

关于Eclipse中Jsp页面打不开并且显示Failed to create the part&#39;s controls的解决办法

问题描述:同事从svn上导入的一个项目,jdk都设置好了以后,java.xml.html等文件都能打开,唯独jsp文件打不开,并且显示Failed to create the part's controls,但有小部分jsp是可以打开的. 解决过程:我在网上搜索了Failed to create the part's controls这个关键语句,网上解决办法1:关闭Eclipse再打开:办法2:切换工作空间式重启:办法3:jdk版本的问题.前两种办法都试过了,最后一种是不存在的情况,但都没有解

使用Mysql数据库完成增删改查综合案例(JSP页面)

本案例页面如下: 这是index.jsp页面(包含模糊查询) <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import=" java.sql.* "%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01

HTML5中的时间类型,另外EL表达式的时间值来读取时间,并且还可以更改时间

HTML5规范里只规定date新型input输入类型,并没有规定日历弹出框的实现和样式.所以,各浏览器根据自己的设计实现日历.目前只有谷歌浏览器完全实现日历功能.相信这种局面很快就会结束,所有的浏览器最终都将会提供原生的日历组件. 如果你使用的是谷歌浏览器,那你就可以在下面的实例演示中看到这个漂亮的日期组件.用鼠标点击输入框,就能看到浏览器原生的日历框. 约会日期: 如果你当前使用的浏览器还没有实现日历组件,下面的图片你可以先睹为快. 无需任何的JavaScript,它变成了一个最基本的inpu

servlet里获得jsp页面里select的选项之值

  <span style="font-size:24px;"><select name=first> <option value="1">第一</option> <option value="1">第二</option> </select></span> String v=request.getParameter("first")

Struts2中如何接收另一个action 或者JSP页面经过POST方法传过来的字符串

经验总结: 最近在用struts2 写接口,要给请求者返回一个json字符串,但是,请求是用POST请求的,各种方法尝试,最后终于得到了答案: /** * 封装接收客户端传过来的post数据 * @param ctx ActionContext的对象 * @return */ public static String getRequestBody(ActionContext ctx){ try { HttpServletRequest request = (HttpServletRequest)

JSTL标签库中&lt;c:choose&gt;&lt;/c:choose&gt;不能放JSP页面&lt;!-- --&gt;注释

笔者最近在使用JSTL标签库的<c:choose>标签时候,发现在该标签体中加了JSP的<!-- -->注释时,总是会显示报错信息.错误的信息如下: <span style="font-size:18px;">org.apache.jasper.JasperException: <h3>Validation error messages from TagLibraryValidator for c in /list.jsp</h3&

java实体类的属性名首字母不能大写,不然el表达式无法取值

摘要:Java命名规范中,实体类属性名以小写字母开头,但并没有说不能以大写字母开头,然而事实告诉我,大写真不行 https://www.cnblogs.com/jnhs/p/10025757.html 原文地址:https://www.cnblogs.com/jnhs/p/10025769.html