不明白哪错了
我从另外一个页面跳转过来 得到传过来的ID 从数据库中LOAD这个对象 属性放在FORM 里面 
如果不执行start到end的代码 页面不会报错  Category .update那行报错 调试了很久也没查出来 谢谢<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%@ page import="shopping.*" %>
<%@ include file="_sessioncheck.jsp" %><%
int id = Integer.parseInt(request.getParameter("id"));
Category c=CategoryDAO.loadById(id);
%><%                                                            ////START
String action = request.getParameter("action");

if(action=="modify"){
String name  = request.getParameter("name");
String descr  = request.getParameter("descr");
Category.update(name,descr,id);            //-------------报错行数
}                                                   ////END %>
   
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>CATEGORY MODIFY</title>
</head>
<body> 

<form action="categorymodify.jsp" method="post">
<input type="hidden" name="action" value="modify"/>
ID<input type="text" name="id" value="<%=id%>" readonly="readonly"><br/>
NAME<input type="text" name="name" value="<%=c.getName() %>"><br/>
DESCRIPTION<textarea name="descr" rows="8" cols="40"><%=c.getDescr() %></textarea><br/>
PID<input type="text" name="pid" value="<%=c.getPid() %>" readonly="readonly"><br/>
LEAF<input type="text" name="leaf" value="<%=c.isLeaf() %>" readonly="readonly"><br/>
GRADE<input type="text" name="grade" value="<%=c.getGrade() %>" readonly="readonly"><br/>
<input type="submit" value="ENTER"/><input type="reset" value="RESET">
</form>
</body>
</html>

解决方案 »

  1.   

    action=="modify"  这个肯定要用equals  报错没有报错信息很难判断  不过我估计无非就是Category.update(name,descr,id); 的三个参数有空指针等 不行就贴异常
      

  2.   

    if(action=="modify"){
    改成"modify".equals(action)
      

  3.   

    呵呵 短路了  不知道怎么会用==号去判断相等
    不过奇怪的是用了equals还是抱原来的错
    The method update(String, String, int) is undefined for the type Category
    13:  if(action.equals("modify")){
    14:  String name  = request.getParameter("name");
    15:  String descr  = request.getParameter("descr");
    16:  Category.update(name,descr,id);
    17:  }
    18: 
    19:  %>
    Stacktrace:] with root cause
    org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: 16 in the jsp file: /admin/categorymodify.jsp
    The method update(String, String, int) is undefined for the type Category
    13:  if(action.equals("modify")){
    14:  String name  = request.getParameter("name");
    15:  String descr  = request.getParameter("descr");
    16:  Category.update(name,descr,id);
    17:  }
    18: 
    19:  %>
    Stacktrace:
    at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
    at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
    at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:443)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:367)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:345)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:332)
    at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:594)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:327)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:363)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:306)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:203)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:108)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:558)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:379)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:242)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:259)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:281)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:619)没有在category里面定义 可我是定义了的 奇怪
      

  4.   

    Category.update(name,descr,id);  中update是静态方法吗,只有静态方法才能用类名调用 啊。
      

  5.   

    是的 修正一下 我用的equals 不是用的== 
    手误