JSP页面传值给action后出问题,求解答
先上代码:
页面部分:<s:iterator value="dingdans" status="dingdan">
<td class=forumrow height=24><s:property value="dingdanId" /></td>
<td class=forumrowhighlight height=24><s:property value="dingdanShijian"/></td>
<td class=forumrow height=24><s:property value="user.userName"/></td>
<td class=forumrowhighlight height=24><s:property value="user.dianhua"/></td>
<td class=forumrow height=24><s:property value="user.dizhi"/></td>
<td class=forumrowhighlight height=24><s:property value="zongjia"/>元 </td>
<td class=forumrow height=24><s:property value="zhuangtai"/></td>
<s:if test=" zhuangtai == '提交'">
<td class=forumrowhighlight height=24>
<%-- <s:a href='updateDingdan.action?dingdanId="<s:property value="dingdanId" />"'> 处理</s:a> --%>
<form action="updateDingdan.action">
<input type="hidden" name="dingdanId" value="<s:property value="dingdanId" />">
<input type="submit" value="处理">
</form>
</td>
</s:if>
action部分public String updateDingdan() throws Exception {
DingdanDAO dingdanDAO=new DingdanDAO();
if(dingdanDAO.updateDingdan(dingdanId)) {
return SUCCESS;
}else{
return INPUT;
}
}
dao部分public boolean updateDingdan(int dingdanId){
boolean flag=false;
DingdanDAO dingdanDAO=new DingdanDAO();
Dingdan dingdan=dingdanDAO.getDingdanById(dingdanId);
String sql="update dingdan set userId=?,zhuangtai=?,dingdanShijian=?,zongjia=? where dingdanId='"+dingdan.getDingdanId()+"'";
try{
Connection conn=DBConn.getConnection();
PreparedStatement pstmt=conn.prepareStatement(sql);
pstmt.setInt(1, dingdan.getUserId());
pstmt.setString(2, "已处理");
pstmt.setDate(3, new java.sql.Date(dingdan.getDingdanShijian().getTime()));
pstmt.setInt(4, dingdan.getZongjia());
if(pstmt.executeUpdate()>0){
flag=true;
}
pstmt.close();
conn.close();
}catch (Exception e){
e.printStackTrace();
}
return flag;
}
错误为
com.microsoft.sqlserver.jdbc.SQLServerException: 结果集没有当前行。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:130)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.verifyResultSetHasCurrentRow(SQLServerResultSet.java:314)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.getterGetColumn(SQLServerResultSet.java:1785)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.getValue(SQLServerResultSet.java:1820)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.getValue(SQLServerResultSet.java:1805)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.getInt(SQLServerResultSet.java:2041)
at edu.niit.cn.dao.DingdanDAO.getDingdanById(DingdanDAO.java:77)
at edu.niit.cn.dao.DingdanDAO.updateDingdan(DingdanDAO.java:240)
at edu.niit.cn.action.DingdanAction.updateDingdan(DingdanAction.java:135)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
…………………………
java.lang.NullPointerException
at edu.niit.cn.dao.DingdanDAO.updateDingdan(DingdanDAO.java:248)
at edu.niit.cn.action.DingdanAction.updateDingdan(DingdanAction.java:135)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:453)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:292)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:255)
at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
……………………
[最优解释]
可以的话,代码发我qq28205968,我帮你看看
[其他解释]
<input type="hidden" name="dingdanId" value="<s:property value="dingdanId" />">
你这里面应该没值,改成value="%{dingdanId}"试试
[其他解释]
如果页面我用上面的注释部分,
<s:a href='updateDingdan.action?dingdanId="<s:property value="dingdanId" />"'> 处理</s:a>传递参数到action,会有
警告: Error setting expression 'dingdanId' with value '[Ljava.lang.String;@112610d'
ognl.MethodFailedException: Method "setDingdanId" failed for object edu.niit.cn.action.DingdanAction@fdfd91 [java.lang.NoSuchMethodException: edu.niit.cn.action.DingdanAction.setDingdanId([Ljava.lang.String;)]
at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1292)
Caused by: java.lang.NoSuchMethodException: edu.niit.cn.action.DingdanAction.setDingdanId([Ljava.lang.String;)
at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1233)
... 67 more
/-- Encapsulated exception ------------\
java.lang.NoSuchMethodException: edu.niit.cn.action.DingdanAction.setDingdanId([Ljava.lang.String;)
at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1233)
at ognl.OgnlRuntime.setMethodValue(OgnlRuntime.java:1481)
等错误,求大神、大虾、大师们帮帮忙啊,急用的!
[其他解释]
空指针,debug跟一下,,貌似服务器也要重启
[其他解释]
[其他解释]
[其他解释]
实在不行就定义一个int型的java变量把值赋给这个变量将这个值传给action
[其他解释]