//异常信息
进来没?
2010-12-16 9:21:09 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet action threw exception
java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Integer.java:417)
at java.lang.Integer.parseInt(Integer.java:499)
at com.zjl.jc.web.action.ItermAction.delete(ItermAction.java:55)
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 org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:269)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:170)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
//web层
package com.zjl.jc.web.action;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;public class ItermAction extends DispatchAction {
private ItermsManager manager;
public void setManager(ItermsManager manager) {
this.manager = manager;
}
public ActionForward add(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
// 两种情况
ItemActionForm f = (ItemActionForm)form;
String id = request.getParameter("id");
Iterms i = null;
if (id == null) { // 新增的一个物料
i = new Iterms();
}else { // 修改的已有的物料 ,根据id读出来这条记录
i = manager.getIterms(Integer.parseInt(id));
}
i.setCategory(f.getCategory());
i.setItemName(f.getItemName());
i.setPattern(f.getPattern());
i.setSpec(f.getSpec());
manager.save(i);
return list(mapping, form, request, response);
}
public ActionForward delete(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
ItemActionForm laf = (ItemActionForm)form;
System.out.println(laf.getSelectFlag());
//String id = request.getParameter("id");
System.out.println("进来没?");
//System.out.println(request.getParameter("id"));
manager.delete(Integer.parseInt(request.getParameter("id")));
return list(mapping, form, request, response);
}
public ActionForward edit(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
// 得到要修改记录的id值
String id = request.getParameter("id");
ItemActionForm f = (ItemActionForm)form;
// 得到要修改的这条记录
Iterms i = manager.getIterms(Integer.parseInt(id));
// 对这条记录进行属性的修改,完成后存放到f对象中,各个属性的值来自于这条记录的属性
/*f.set("itermName", i.getItemName());
f.set("spec", i.getSpec());
f.set("pattern", i.getPattern());
f.set("category", i.getCategory());*/
f.setItemName(i.getItemName());
f.setCategory(i.getCategory());
f.setPattern(i.getPattern());
f.setSpec(i.getSpec());
request.setAttribute("id", id);
return mapping.findForward("modify");
}
public ActionForward list(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
List list = manager.getIterms();
request.setAttribute("list", list);
return mapping.findForward("list_success");
}
public ActionForward unspecified(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
return list(mapping, form, request, response);
}
}
//service层接口
package com.zjl.jc.service;
import java.util.List;
import com.zjl.jc.model.Iterms;
public interface ItermsManager {
public void save(Iterms i);
//public Iterms getIterms(String id);
public List getIterms();
public void delete(Integer id);
public Iterms getIterms(Integer id);
public Iterms getIterms(String id);
//public void delete1(Integer id);}
//hibernate实现类
package com.zjl.iterms.dao.hibernate;
public class ItermsDaoHibernate extends HibernateDaoSupport implements ItermDao {
private ItermDao itermDao;
public ItermDao getItermDao() {
return itermDao;
}
public void setItermDao(ItermDao itermDao) {
this.itermDao = itermDao;
}
@Override
public void delete(Integer id) {
this.getHibernateTemplate().delete(getIterm(id));
}
@Override
public Iterms getIterm(Integer id) {
return this.getHibernateTemplate().get(com.zjl.jc.model.Iterms.class, id);
}
@Override
public List getIterms() {
return this.getHibernateTemplate().find("from Iterms");
}
@Override
public void save(Iterms i) {
this.getHibernateTemplate().saveOrUpdate(i);
}
}
//actionForm
package com.zjl.jc.web.form;
import javax.servlet.http.HttpServletRequest;public class ItemActionForm extends ActionForm {
private static final long serialVersionUID = 1L;
private Integer itemNo;
private String[] selectFlag;
public String[] getSelectFlag() {
return selectFlag;
}
public void setSelectFlag(String[] selectFlag) {
this.selectFlag = selectFlag;
}
public Integer getItemNo() {
return itemNo;
}
public void setItemNo(Integer itemNo) {
this.itemNo = itemNo;
}
private String spec;
private String category;
private String pattern;
private String itemName;
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
return null;
}
public void reset(ActionMapping mapping, HttpServletRequest request) {
// TODO Auto-generated method stub
} public String getSpec() {
return spec;
}
public void setSpec(String spec) {
this.spec = spec;
} public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
}
public String getPattern() {
return pattern;
}
public void setPattern(String pattern) {
this.pattern = pattern;
}
public String getItemName() {
return itemName;
}
public void setItemName(String itemName) {
this.itemName = itemName;
}
}
//jsp页面
<html>
<head>
<script type="text/javascript">
function addItem() {
window.self.location = "additem.do";
}
function modifyItem() {
var count = 0;
var j = 0;
for (var i = 0; i < document.getElementsByName("selectFlag").length; i++) {
if (document.getElementsByName("selectFlag")[i].checked) {
j = i;
count++;
}
}
if (count == 0) {
alert("请选择需要修改的物料!");
return;
}
if (count > 1) {
alert("一次只能修改一个物料!");
return;
}
if (count == 1) {
window.self.location = "item.do?command=add";
}
}
function deleteItem() {
var flag = false;
for (var i = 0; i < document.getElementsByName("selectFlag").length; i++) {
if (document.getElementsByName("selectFlag")[i].checked) {
flag = true;
alert(flag);
alert(i);
}
}
if (!flag) {
alert("请选择需要删除的物料!");
return;
}
if (window.confirm("确认删除吗?")) {
with (document.getElementById("itemForm")) {
method = "post";
alert(document.getElementById("selectFlag").checked);
action = "iterm.do?command=delete";
submit();
alert("进来没?")
}
}
}
</script>
</head>
<body>
<h3>后台酒水管理系统</h3>
<form name="itemForm" id="itemForm">
<table border="1">
<c:forEach items="${list}" var="item">
<tr>
<td width="35"><input type="checkbox" name="selectFlag" id="selectFlag" value="${item.itemNo }"></td>
<td width="222">${ item.itemName }</td>
<td width="195">${ item.spec }</td>
<td width="293">${ item.pattern }</td>
<td width="293">${ item.category}</td>
</tr>
</c:forEach>
</table>
<table width="95%" height="30" border="0" align="center" >
<tr>
<td width="64%">
<input name="btnAdd" type="button" value="增加" id="btnAdd" onclick="addItem();">
<input name="btnDelete" type="button" value="删除" id="btnDelete" onclick="deleteItem();">
<input name="btnModify" type="button" value="修改" id="btnModify" onclick="modifyItem();">
</td>
</tr>
</table>
</form>
</html>
//struts-config.xml
<struts-config>
<form-beans >
<form-bean name="itermForm" type="com.zjl.jc.web.form.ItemActionForm" />
<form-bean name="loginForm" type="com.zjl.jc.web.form.LoginForm" /> </form-beans> <global-exceptions />
<global-forwards>
<forward name="index" path="/index.jsp" redirect="true"/>
</global-forwards>
<action-mappings >
<action
attribute="itermForm"
name="itermForm"
parameter="command"
path="/iterm"
scope="request"
type="com.zjl.jc.web.action.ItermAction"
cancellable="true">
<forward name="list_success" path="/maint.jsp" />
</action>
<action path="/additem"
forward="/item_add.jsp"
name="itermForm"
>
</action>
<action
attribute="loginForm"
name="loginForm"
path="/login"
scope="request"
type="com.zjl.jc.web.action.LoginAction"
cancellable="true">
<forward name="error" path="/login_error.jsp" />
<forward name="success" path="/iterm.do?command=list" />
</action>
解决方案 »
- 急!出现Status 501 - Method Drco???????GET is not defined in RFC
- 问一个JSP查询数据库的问题!搞半天都不得
- 网站内容即时更新
- struts高手救命!!!!!!!我这个问题如何解决????????????????有关struts自带的上传控件的小问题
- 讨论:聊天室,即时信息发送和接受的问题
- cvs能实现在线升级吗?
- html表格设计------请求紧急支援!!!!!!!
- 怎么从数据库中搜索时间是今天的数据?
- 本人html知识浅薄,求教一个表单问题!
- jsp上能作出类似压缩包解压时下面显示的实时信息的那种效果吗
- 在jsp上添加treeview,用ajax动态加载节点
- [acegi]关于在各个功能相同的子业务中设定不同角色管理权限的问题
function deleteItem() {
var flag = false;
for (var i = 0; i < document.getElementsByName("selectFlag").length; i++) {
if (document.getElementsByName("selectFlag")[i].checked) {
flag = true;
alert(flag);
alert(i);
}
}
if (!flag) {
alert("请选择需要删除的物料!");
return;
}
if (window.confirm("确认删除吗?")) {
with (document.getElementById("itemForm")) {
method = "post";
alert(document.getElementById("selectFlag").checked);
action = "iterm.do?command=delete";
submit();
alert("进来没?")
}
}
}
你的删除 js 怎么没有把要删除的ID传到ACTION
而且我也没看到你拼接要删除的ID字符串