今天突然遇到这个问题。String index out of range: -2不知道为什么?请高手指点迷津。
java.lang.StringIndexOutOfBoundsException: String index out of range: -2
at java.lang.String.substring(String.java:1444)
at jsp_servlet._fams.__tb_assetscard_car_doadd._jspService(__tb_assetscard_car_doadd.java:203)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1077)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:348)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:7047)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3902)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2773)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)

解决方案 »

  1.   

    <%@ page contentType="text/html; charset=GBK" %>
    <%@ page import="com.iyongxin.adapter.*,com.iyongxin.model.*,com.iyongxin.javabean.*"%>
    <jsp:include page="../public.jsp" flush="true" />
    <jsp:directive.page import="com.jspsmart.upload.SmartFile"/>
    <jsp:useBean id="myUpload" scope="page" class="com.jspsmart.upload.SmartUpload" />
    <html>
    <head>
    <title>
    doadd
    </title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    </head>
    <body>
    <%Tb_assetscard v = new Tb_assetscard();//v = RoleAdapter.getInstance().generateModel(request,v);
    String dotype=null;
    //out.print(dotype);String msg ="参数错误!";
    try{
    myUpload.initialize(pageContext);
    myUpload.setAllowedFilesList("jpeg,jpg,gif,bmp,txt,doc");
    myUpload.setMaxFileSize(1000000);

    myUpload.upload();

    //out.print(myUpload.getFiles().getCount());
    String visualName="",fileName="";//上传附件
    String filePath="/upload/card/";
    for (int j=0;j<myUpload.getFiles().getCount();j++){
    String fileType=myUpload.getFiles().getFile(j).getFieldName();

    //String myRandom=FormatStr.getRandom();
    SmartFile myFile = myUpload.getFiles().getFile(j);
    if (!myFile.isMissing()) {
    fileName= myUpload.getRequest().getParameter("Serialnum")+"."+myFile.getFileExt();
    visualName = myFile.getFileName();
    //out.print(fileName+"  ||  "+visualName+"  ||  "+fileType+"<br>");
    myFile.saveAs(filePath + fileName);
    v.setPicname("upload/card/" + fileName);//保存照片路径
    }
    else
    {
      v.setPicname(myUpload.getRequest().getParameter("Picnamereal"));//保存照片路径
    }
    }

    dotype=myUpload.getRequest().getParameter("dotype");//操作类型.
    if(dotype==null)dotype="add";

    v.setAssetstype("车辆类");
    v.setAssetsamount(1);//资产数量
    v.setAssetsmeasure(myUpload.getRequest().getParameter("Assetsmeasure"));
    //解析分类代码[分类代码]分类名称=>分类代码
    String s_Assetssortcode=myUpload.getRequest().getParameter("Assetssortcode").toString();
    s_Assetssortcode=s_Assetssortcode.substring(1,s_Assetssortcode.indexOf("]"));
    v.setAssetssortcode(s_Assetssortcode);
    v.setAssetsadmindeptid(myUpload.getRequest().getParameter("Assetsadmindeptid"));
    v.setCarvinno(myUpload.getRequest().getParameter("Carvinno"));
    v.setCarenginno(myUpload.getRequest().getParameter("Carenginno"));
    v.setAssetsname(myUpload.getRequest().getParameter("Assetsname"));
    v.setAssetsstandard(myUpload.getRequest().getParameter("Assetsstandard"));
    try{v.setAssetsusedate(BaseBean.getTime(myUpload.getRequest().getParameter("Assetsusedate")));}catch(Exception e){}
    v.setAssetsdept(myUpload.getRequest().getParameter("Assetsdept"));
    v.setGetmode(myUpload.getRequest().getParameter("Getmode"));
    v.setUsestate(myUpload.getRequest().getParameter("Usestate"));
    v.setAssetsuser(myUpload.getRequest().getParameter("Assetsuser"));
    v.setAssetswriter(myUpload.getRequest().getParameter("Assetswriter"));
    v.setAssetsprodarea(myUpload.getRequest().getParameter("Assetsprodarea"));
    v.setYearcount(BaseBean.getInt(myUpload.getRequest().getParameter("Yearcount")));
    v.setVehicleno(myUpload.getRequest().getParameter("Vehicleno"));
    v.setLongmiles(BaseBean.getFloat(myUpload.getRequest().getParameter("Longmiles")));
    v.setAssetsmanager(myUpload.getRequest().getParameter("Assetsmanager"));
    //v.setAssetsprice(BaseBean.getFloat(myUpload.getRequest().getParameter("Assetsprice")));
    v.setAssetsprice(BaseBean.getDouble(myUpload.getRequest().getParameter("Assetsprice")));

    try{v.setAssetsdispdate(BaseBean.getTime(myUpload.getRequest().getParameter("Assetsdispdate")));}catch(Exception e){}

    v.setDpreciationadd(BaseBean.getFloat(myUpload.getRequest().getParameter("Dpreciationadd")));
    v.setLeftprice(BaseBean.getFloat(myUpload.getRequest().getParameter("Leftprice")));
    v.setAssetsfactoryno(myUpload.getRequest().getParameter("Assetsfactoryno"));
    v.setRes(myUpload.getRequest().getParameter("Res"));
    v.setVehexh(BaseBean.getFloat(myUpload.getRequest().getParameter("Vehexh")));
    //v.setAssetsadmindept(myUpload.getRequest().getParameter("Assetsadmindept"));
        String tempadmindept=DepartmentManager.getInstance().getByKey(myUpload.getRequest().getParameter("Assetsadmindeptid")).getDepname();
        v.setAssetsadmindept(tempadmindept);
    v.setVehpurpose(myUpload.getRequest().getParameter("Vehpurpose"));
    v.setAssetsorg(myUpload.getRequest().getParameter("Assetsorg"));

    try{v.setAssetsenddate(BaseBean.getTime(myUpload.getRequest().getParameter("Assetsenddate")));}catch(Exception e){}

    //v.setDpreciationtype(myUpload.getRequest().getParameter("Dpreciationtype"));
    v.setDisposalmode(myUpload.getRequest().getParameter("Disposalmode"));
    v.setAssetsuwtype(myUpload.getRequest().getParameter("Assetsuwtype"));

    try{v.setUseingdate(BaseBean.getTime(myUpload.getRequest().getParameter("Useingdate")));}catch(Exception e){}
    v.setAssetsnum(myUpload.getRequest().getParameter("Assetsnum"));

    if(v!=null){
    if("add".equals(dotype)){
             String depid = session.getAttribute("depid").toString();//登录用户部门编号
                String useinitials=myUpload.getRequest().getParameter("Assetssortcode");
             v.setSerialnum(Tb_assetscardManager.getInstance().getMaxId(depid));
                v.setSerialcode(Tb_assetscardManager.getInstance().getSerialcode_assetssort(depid,useinitials));
             if(Tb_assetscardAdapter.getInstance().add(v,request)>0)
    msg="添加成功.";
    else
    msg="添加失败.";
    }
    if("modify".equals(dotype)){
    v.setSerialnum(myUpload.getRequest().getParameter("Serialnum"));
                v.setSerialcode(myUpload.getRequest().getParameter("Serialcode"));
    if(Tb_assetscardAdapter.getInstance().update(v,request)>0)
    msg="修改成功.";
    else
    msg="修改失败.";
    }
    if("view".equals(dotype)){
    v.setSerialnum(myUpload.getRequest().getParameter("Serialnum"));
                v.setSerialcode(myUpload.getRequest().getParameter("Serialcode"));
    if(Tb_assetscardAdapter.getInstance().update1(v,request)>0)
    msg="修改成功.";
    else
    msg="修改失败.";

    }
    }
    }catch(Exception e ){
    e.printStackTrace();
    }
    %>
      <table width="624" borderColor=#d7dfe7 cellSpacing=0
    borderColorDark=#ffffff cellPadding=2
    align=center border=1 style="font-size: 12pt; color: #000000">
    <tr>
          <td  align="center"><%=msg%>
        </td>
      </tr>
      <tr>
          <td  align="center">
    <a href="#" onclick="history.back(-1)">返回</a>
    <a href="Tb_assetscard_car_list.jsp">完成</a>
        </td>
      </tr>
    </table>
    </body>
    </html>