使用jsp、servlet和java更新数据库时遇到问题
嗨,我在更新数据库中的元素时遇到问题。我在数据库中的列中的值似乎不会出现。我需要它,以便我可以更新我的数据库,但这是我得到的 { 这是我的Servlet使用jsp、servlet和java更新数据库时遇到问题,java,jsp,servlets,Java,Jsp,Servlets,嗨,我在更新数据库中的元素时遇到问题。我在数据库中的列中的值似乎不会出现。我需要它,以便我可以更新我的数据库,但这是我得到的 { 这是我的Servlet empServices empserv= new empServices(); if (request.getParameter("process") !=null && request.getParameter("process").equals("updemps")) { empgs.addAll(emps
empServices empserv= new empServices();
if (request.getParameter("process") !=null && request.getParameter("process").equals("updemps"))
{
empgs.addAll(empserv.updAll(request.getParameter("serialS")));
request.setAttribute("empdetails", empgs);
RequestDispatcher updrd = request.getRequestDispatcher("updDetails.jsp");
updrd.forward(request, response);
}
else if (request.getParameter("process") != null && request.getParameter("process").equals("edit"))
{
//some process here
}
这是我的DAO,这一部分将把数据库中的内容带到jsp页面
public ArrayList<empGetSet> getupdemp()
{
ArrayList<empGetSet> empdtls = new ArrayList<empGetSet>();
try {
Connection conn = getConnection();
String updsql = "UPDATE csemp SET Fname=?,Lname=?,NameResource=?,JRSS=?,Band=?,Acct=?,PMPSeat=?,SeatJRSS=?,OpenSeatDesc=?,ReqSkills=?,ReqBand=?,DReject=?,RReject=?,DetActionPlan=?,DataCompletion=?,Status=? WHERE SerialNumber=?";
PreparedStatement psupd= conn.prepareStatement(updsql);
ResultSet rsupd = psupd.executeQuery();
while (rsupd.next())
{
empGetSet readgetset = new empGetSet();
readgetset.setfName(rsupd.getString(1));
readgetset.setlName(rsupd.getString(2));
readgetset.setNameRes(rsupd.getString(3));
readgetset.setSerialS(rsupd.getString(4));
readgetset.setjRss(rsupd.getString(5));
readgetset.setBanD(rsupd.getString(6));
readgetset.setAccT(rsupd.getString(7));
readgetset.setpMPS(rsupd.getString(8));
readgetset.setSjRss(rsupd.getString(9));
readgetset.setOpenSeatDesc(rsupd.getString(10));
readgetset.setReqSkills(rsupd.getString(11));
readgetset.setReqBand(rsupd.getString(12));
readgetset.setdReject(rsupd.getString(13));
readgetset.setrReject(rsupd.getString(14));
readgetset.setDetActPlan(rsupd.getString(15));
readgetset.setDataComplete(rsupd.getString(16));
readgetset.setStaT(rsupd.getString(17));
empdtls.add(readgetset);
}
psupd.close();
conn.close();
}
catch (Exception e)
{
e.printStackTrace();
}
return empdtls;
}
这是我的jsp页面
<title>Update Details</title>
</head>
<body>
<div align="right"><a href="loggedin.jsp"><button>Back</button></a></div>
<form action = "empServlet" method ="get">
<c:forEach items ="${empdetails}" var="empdet">
First name:
<input type="text" name="eFname" value ="${empdet.fName}" required />
<br>
<br>
Last name:
<input type="text" name="eLname" value ="${empdet.lName}" required/>
<br>
<br>
Name of Resource (LN ID Format):
<input type="text" name="eNameRes" value="${empdet.nameRes}" required/>
<br>
<br>
Serial Number:
<input type="text" name="eSerials" value ="${empdet.serialS}" required/>
<br>
<br>
JRSS:
<input type="text" name="eJrss" value ="${empdet.jRss}" required/>
<br>
<br>
Band:
<input type="text" name="eBand" value ="${empdet.banD}" required />
<br>
<br>
Account(Proposed):
<input type="text" name="eAcct" value ="${empdet.accT}" required/>">
<br>
<br>
PMP Seat:
<input type="text" name="ePMPs" value ="${empdet.pMPS}" required/>
<br>
<br>
Seat JRSS:
<input type="text" name="esJRSS" value ="${empdet.sjRss}" required/>
<br>
<br>
Open Seat Description:
<br>
<textarea rows="4" cols="50" name ="eOpenSeatDesc" placeholder = "Enter descriptions here" required>${empdet.openSeatDesc}</textarea>
<br>
<br>
Required Skills:
<input type="text" name="eReqSkills" value ="${empdet.reqSkills}" required/>
<br>
<br>
Requested Band (low/high):
<input type="text" name="eReqBand" value ="${empdet.reqBand}" required/>
<br>
<br>
Date of Rejection:
<input type="text" name="eDreject" value ="${empdet.dReject}" required/>
<br>
<br>
Reason for Rejection:
<br>
<textarea rows="4" cols="50" placeholder = "Enter reasons here" name= "eRreject" required>${empdet.rReject}</textarea>
<br>
<br>
Detailed Action Plan:
<br>
<textarea rows="4" cols="50" placeholder = "Enter details here" name= "eDetActPlan" required>${empdet.detActPlan}</textarea>
<br>
<br>
Target Date of Completion:
<input type="text" name="eDataComplete" value ="${empdet.dataComplete}" required/>
<br>
<br>
Status (Ongoing,Closed):
<input type="text" name="eStat" value ="${empdet.staT}" required/>
<br><br>
<input type = "submit" value = "Submit" >
</c:forEach>
</form>
</body>
</html>
更新详细信息
名字:
姓氏:
资源名称(LN ID格式):
序列号:
JRSS:
波段:
账户(拟议):
">
PMP席位:
座椅JRSS:
开放式座椅说明:
${empdet.openSeatDesc}
所需技能:
请求的波段(低/高):
拒绝日期:
拒绝理由:
${empdet.rReject}
详细行动计划:
${empdet.detActPlan}
目标完成日期:
状态(正在进行、已结束):
更新~~~
*我终于显示了内容:)(我很高兴)我可以问另一个问题吗?朋友们?我如何才能真正更新这个。我的意思是,当我在更新jsp上单击提交按钮时,它会将新值存储到数据库中。顺便说一句,谢谢大家!尝试将
<c:out value='${status.value}' />
而不是
<c:out value ="${empdet.fName}"/>
其他人也一样
关于spring绑定和状态变量的说明 status是spring bind使用的变量。 您还需要使用spring bind绑定字段值 改变这个
First name:
<input type="text" name="eFname" required value ="<c:out value ="${empdet.fName}"/>">
<br>
<br>
名字:
到
名字:
错误代码:
等等
问题似乎是您未能在JSP中导入JSTL核心标记。还要确保获取jar文件。请在JSP顶部添加以下行
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>
还要确保为JSP启用了EL(表达式语言)。如何测试EL是否被禁用/忽略?尝试一个简单的表达式,看看它是否生成结果(已启用)或按原样打印(已忽略)。例如,${3+4}
必须打印结果7
最后一个,要打印,您实际上不需要使用
,只需使用${empdet.fName}
仍然会得到相同的结果,因此尝试此方法而不必导入JSTL,
。但请确保empdet
设置在范围(页面/请求/会话/应用程序)中.什么是问题更新sql查询或JSP输出?JSP输出,它不会显示数据库中的详细信息,因此我可以编辑它,而是显示“c:out value=”当我将其转换为:String updsql=”时更新csemp集合Fname=?,Lname=?,NameResource=?,JRSS=?,Band=?,Acct=?,PMPSeat=?,SeatJRSS=?,OpenSeatDesc=?,ReqSkills=?,ReqBand=?,DReject=?,RReject=?,DetActionPlan=?,DataCompletion=?,Status=?其中SerialNumber=?,“PreparedStatement PSUPPD=conn.prepareStatement(updsql);PSUPPD.setString(1,Fname);----fName给我一个错误你能指定camethansk bro的例外情况吗?但状态是什么意思?值??我包括了那个兄弟,顺便说一句,谢谢,我已经删除了我更新了我的代码,谢谢,并添加了另一个问题:)
<spring:bind path="empdet.fName">
First Name: <input
type="text"
value="<c:out value="${status.value}"/>"
name="<c:out value="${status.expression}"/>">
<c:if test="${status.error}">
Error codes:
<c:forEach items="${status.errorMessages}" var="error">
<c:out value="${error}"/>
</c:forEach>
</c:if>
</spring:bind>
// execute the java preparedstatement
preparedStmt.executeUpdate();
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>