• 将数据以json字符串格式传到前台请求页面


    1.前台ajax方法(这个是在FlowDocAction的add.jsp页面)

      //序列号
      var preFileNo = factoryCode+deptCode+"-"+modelSeriesCode+"-"+workProcessCode;

      var yz=$.ajax({
      type:'get',
      url:'FlowDocVersion!getSort.shtml?preFileNo='+preFileNo,
      cache:false,
      dataType:'json',
      success:function(data){
        if(data){

        //将json字符串转换为json对象,因为要通过点的方法来拿它的属性  eval('('+str+')');
        var obj = eval('(' + data + ')');
        alert(obj.preFileNo);
        }
        },
      error:function(data){
      alert("出错了");
      }
    });

    2.后台页面:因为此处是ssh的action,方法返回String类型默认去找对应页面,而请求的页面是另一个action的result对应的页面,所以此处的

    (这里是在FlowDocVersinoAction.java类里)

      //文件编码
      public String getSort() throws Exception {
      try {
      //查询所有类似的文件
      String sql="select FileNo from FlowDocVersion where Status <>0 and FileNo like '"+preFileNo+"%'";
      System.out.println("getSort.sql:"+sql);
      List<FlowDocVersion> fileNoList = new FlowDocVersionFacade().find(sql,"FlowDocVersion.FileNo");
      int max = 0 ;
      if(fileNoList.size()==0){//没有与当前新增文件编码相同的文件编码
      preFileNo = preFileNo+"01";

      //将数据以json字符串形式响应到请求页面start
      HttpServletResponse response=ServletActionContext.getResponse();
      response.setContentType("text/html");
      PrintWriter out;
      out = response.getWriter();
      //将要被返回到客户端的对象
      JSONObject json=new JSONObject();
      json.accumulate("preFileNo", preFileNo);
      out.println(json.toString());
      out.flush();
      out.close();
      //将数据以json字符串形式传到请求页面end
      System.out.println(preFileNo);
      return "";
      }else {
      for(FlowDocVersion e:fileNoList){
      //拿到文件编码后边的序号
      String sort = e.getFileNo().substring(preFileNo.length(), e.getFileNo().length());
      if(sort.length()>0){
      //解决 NumberFormatException
      //把最大序号赋给max
      try{
      int i = Integer.valueOf(sort);
      if(max<i){
      max = i;
      }
      }catch (NumberFormatException ep) {
      preFileNo = preFileNo+"01";
      System.out.println(preFileNo);
      }
      }
      }
      max=max+1;//最大序号+1作为新增文件的序号
      if(max<10){//小于10个位用0填补
      preFileNo = preFileNo+"0"+max;
      }else{
      preFileNo = preFileNo+max;
      }
      }
      return null;
      }catch(Exception e) {
      this.setMsg("生成文档编码出错");
      Logger.getLogger(this.getClass()).error("FlowDocVersionAction getSort() Exception", e);
      return ERROR;
      }
      }

      

  • 相关阅读:
    网络
    oracle 操作
    oracle可重复执行脚本(添加字段)
    c#命名规范(转载)
    Oracle修改表结构字段名和字段长度
    C#Winform的DEV下拉下拉控件介绍
    TPL DataFlow初探(二)
    TPL DataFlow初探(一)
    C# Winform 跨线程更新UI控件常用方法汇总(多线程访问UI控件)
    C# 关于委托
  • 原文地址:https://www.cnblogs.com/xyzq/p/6065048.html
Copyright © 2020-2023  润新知