以下是我的一个bean:
package com.web.structure;public class Sig_StaticVar {
public static int num=0;
public  static String passvalue=null
public static Sig_SealInfo[] sealinfo=new Sig_SealInfo[10];
public static int getNum()
{  
return num;
}public static void setNum()
{   ++num;
}
public static String getPassvalue()
{  
return passvalue;
}
public static void setPassvalue(String p)
{  passvalue=p;
}
public static void setSeal_info(Sig_SealInfo Sealinfo,int index)
{
sealinfo[index]=Sealinfo;
}
public  static Sig_SealInfo getSeal_info(int index)
{
return sealinfo[index];
}}我在第一个页面,这样写了:<jsp:useBean id="staticvar" scope="session" class="com.web.structure.Sig_StaticVar" >
</jsp:useBean>第二个页面中,就有这样的语句:
String pass=request.getParameter("pass");//pass是由一个变量传递的;
   if(pass=="1")
  {Sig_StaticVar.setPassvalue(pass);}但是页面执行第二个页面时就是出现这样的问题:
org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at org.apache.jsp.sendsealescacn.find_jsp._jspService(find_jsp.java:81)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)点击按钮,传递pass值的,一点击就这样,不知道是什么原因,已经试过多次其他方法,但只要涉及到Sig_StaticVar这个类中的变量passvalue,就有这样的问题。谢谢

解决方案 »

  1.   

    public  static String passvalue=null==========这里少了个分号
    public static Sig_SealInfo[] sealinfo=new Sig_SealInfo[10];
    ============这句根本就看不懂,Sig_SealInfo[]是接口还是类?
      

  2.   

    Sig_SealInfo是另外一个类。
    find.jsp源代码:
    <jsp:useBean id="sealinfo" scope="session" class="com.web.model.Sig_SealInfo" />
       
      <% boolean  flag=false;  //点击“确定”的时候就从这里开始出错;
       String g=request.getParameter("pass");
       if(pass=="1")
      {Sig_StaticVar.setPassvalue(pass);}
       else
       { //else的内容直到页面最后;
       
       String note=request.getParameter("note");
       Sig_SealOp modelOp= Sig_SealOp.getInstance(); //实例化印章操作类;
       if(note!=null)
       {
       //builder_sequence为收藏人(登录人)的印章序列号,把sealsequence等插入T_seal_info表;
       flag=modelOp.InsertCollect((String)session.getAttribute("builder_sequence"), sealinfo.getSeal_sequence());    }
       else
       {
       String sealsequence=request.getParameter("sequence").trim();//得到签章人的印章序列号;
       String sealcontent=request.getParameter("content").trim();//字符串编码变换;
       byte[] tempt=sealcontent.getBytes("ISO8859_1");
       sealcontent=new String(tempt);
       
       Sig_SealInfo seal=modelOp.getModelByKey(sealsequence,sealcontent);//得到印章表中的其他信息;
       sealinfo.setUser_name(seal.getUser_name());//设置印章信息类对象中的持章人姓名;
       sealinfo.setSeal_type(seal.getSeal_type());//设置印章信息类对象中的印章类型;
       sealinfo.setSeal_content(sealcontent);//设置印章信息类对象中的印面内容;
       sealinfo.setSeal_sequence(sealsequence);//设置印章信息类对象中的印章序列号;  }
      %>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>查找签章人</title>
    </head>
    <body>
    <table width="100%" border="0" cellpadding="0" cellspacing="1" class="tb">
      <tr>
     
        <td class="lefttd">印章类型</td>
        <td><%=sealinfo.getSeal_type()%></td>
      </tr>
      <tr>
        <td class="lefttd">印面内容</td>
        <td><%=sealinfo.getSeal_content()%></td>
      </tr>
      <tr>
        <td class="lefttd">持章人</td>
        <td><%=sealinfo.getUser_name()%></td>
      </tr>
    </table>
    <form name="tempform" action="find.jsp?pass=1" method="post">
    <table width="100%" border="0" cellpadding="0" cellspacing="0" class="tb2">
      <tr>
        <td class="lefttd2">&nbsp;</td>
        <td><input name="Submit" type="button" class="bt2" value="确定"  onclick="closewin1();"/>
          &nbsp;&nbsp;
        <input name="Submit2" type="button" class="bt2" value="取消"/>
       
        &nbsp;&nbsp;&nbsp;
        <%if(flag)
        { %>
        已成功添加至收藏夹
        <%flag=false;}
        else 
        {%>
        <a href="find.jsp?note=1">添加至收藏夹</a>
        <%} %>
        </td>
      </tr>
    </table>
    </form>
    <%} %>
    <script type="text/javascript">
    function closewin1()//表示点击的是“确定”按钮;
    {  
      
     
      window.location.href="find.jsp?pass=1";  //以下两句是需要的;
       //parent.document.getElementById("dialogBox").style.display="none";
       //parent.document.getElementById("dialogBoxShadow").style.display="none";
       
      
    }
    </script>
    </body>
    </html>
      

  3.   

    这样可以先测试一下这些变量,看看哪个会是null啊.然后再去找原因
      

  4.   

    肯定是pass的值没有得到,出现空指针异常。
    你把pass的值打印出来看看是不是null的
      

  5.   

    我在开始的时候让打印pass值,但是就是一点击确定,出来错误页面,连个null都没显示。
    错误页面一直是这样的:
    description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: Exception in JSP: /sendsealescacn/find.jsp:118: 
    9: 
    10:    
    11:   <% boolean  flag=false;
    12:    String pass=request.getParameter("pass");
    13:    out.print(pass);
    14:    if(pass=="1")
    Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:506)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:395)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    root cause java.lang.NullPointerException
    org.apache.jsp.sendsealescacn.find_jsp._jspService(find_jsp.java:82)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    note The full stack trace of the root cause is available in the Apache Tomcat/5.5.20 logs.
      

  6.   

    把%Tomcat%\work\Catalina\localhost\下你的针对你的工程下的find_jsp._jspService(apache.jsp.sendsealescacn.find_jsp._jspService)帖出来看看
      

  7.   

    有find_jsp.java文件,没有你说的find_jsp._jspService
    ???
    谢谢了