关于Jquery表单校验,jQuery.ajaxFileUpload,vm表单提交的一些总计及写法

韩梓
2023-12-01

#set($layout = "$!{path.getThemePath('myfront_theme')}/common/layout.vm")

<link rel="stylesheet" href="$!{base}/js/validate/validator.css" type="text/css" />

<script type="text/javascript" src="${base}/js/jquery-1.9.1.js"></script>



<link rel="stylesheet" href="$!{base}/js/validate/validator.css" type="text/css" />
<script type="text/javascript" src="$!{base}/js/libs/jquery.form.js"></script>
<script type="text/javascript" src="$!{base}/js/validate/jquery.validate.js"></script>
<script type="text/javascript" src="$!{base}/js/validate/jquery.validate.extend.js"></script>
<script type="text/javascript" src="$!{base}/js/validate/jquery.validate.methods.js"></script>
<script type="text/javascript" src="${base}/js/script/ajaxfileupload.js"></script>

<script type="text/javascript">
    
    //表单校验
    jQuery(document).ready(function(){        
          var v = jQuery("#myForm").validate({
                rules:{
                    buildingId:{ required:true },

                    paymentId:{ required:true },

                   file:{ required:true, accept:"xls" } //增加对上传文件的验证约束, file必须为 type='file' name="file" 必须为 name="file"

                    },
                messages:{
                    buildingId: { required: "请选择" },

                    paymentId: { required: "请选择缴费项目类型" },

                    file: {
                            required: "请选择模板文件",
                            accept: "选择模板文件格式只支持xls"
                            }
                    },

                    },
                submitHandler: function () {
                    saveSubmit();
                }
        });    
    });//结束表单校验
    
    var  buildingId; var paymentId;
    
    //表单ajax提交测试方法.
    function saveSubmit()
    {
        jQuery('#submitBtnsusu').attr('disabled','true');//屏蔽提交按钮
        var flag = false;
                jQuery.ajax({
                      type: "POST",
                      url: '$!{base}/mallfront/wymanegement/saveExcelInfo.action',
                      data: {"buildingId":buildingId,"paymentId":paymentId,"uploadDir":jQuery('#uploadDir').val()},    
                      dataType:'json',
                      success:function(result){
                             if(!result.success){
                                alert(result.mssage);
                                $('#submitBtnsusu').attr('disabled','true');
                             }else{
                              alert(result.mssage);
                              $('#submitBtnsusu').attr('disabled','false');
                               //执行其他方法.
                              //指向缴费信息列表页
                              window.location.href="$!{base}/mallfront/wymanegement/wypayrecordinfo.jhtml";
                             }
                        }
                    });
        
    }
    
    //选择文件之后执行上传,把file对象传到action中的file对象.
    function upload(obj)
    {

        //判断是否有文件选择.
        if ($(obj).val().length > 0)
        {
            jQuery.ajaxFileUpload({
                url: '$!{base}/mallfront/wymanegement/executeImport.action',
                fileElementId: $(obj).attr('id'),
                success: function (data, status) {
                var url=$(data).find("pre").html().replace("\\", "");//替换斜杠
                 //给新生产的文件路径赋值
                $("#uploadDir").val(url.replace(/"/g, ""));
                },
                error: function (data, status, e) {
                    console.log(e);
                    alert(e);
                }
            });
            return false;
        }
      }
      
      //获取小区下拉
      function getBuildId(){
           buildingId = jQuery.trim($("#buildingId option:selected").val());//小区ID
      }
      //获取缴费项目Id
      function getPaymentId(){
           paymentId = jQuery.trim($("#paymentId option:selected").val());//缴费类型ID
      }
</script>

<div class="container">
#parse("$!{path.getThemePath('mallfront_theme')}/common/property_left.vm")
    <div class="business_r" id="tab">
        <div class="tabList">
            <ul class="fl">
              
            </ul>
        </div>
        <div class="blank"></div>
        <div class="tabCon">
            <form id="myForm" action="executeImport.action" method="post">
                <table class="tab" width="100%" border="0" cellspacing="1" cellpadding="0">
                    <tbody>
                        <tr>
                            <td class="tab-content1">
                                <label><span class="red">*</span>名称 #set($accountId=$!{session.getAttribute('front.userId')})</label>
                            </td>
                            <td class="tab-content2">
                                 <select style="width:128px;" name="buildingId" id="buildingId" οnchange="getBuildId();">
                                    <option value="$!{wyOwnerInfoEntity.buildingId}">==请选择==</option>
                                    #foreach($entity in $!{t_wy.findBuilding("$accountId")})
                                    <option value="$!{entity.buildingId}"#if($!{buildingId}=="$!{entity.buildingId}")selected#end>$!{entity.buildingName}</option>
                                    #end
                                </select>
                            </td>          
                        </tr>
                        <tr>
                            <td class="tab-content1">
                                <label><span class="red">*</span>类型</label>
                            </td>
                            <td class="tab-content2">
                                <select style="width:128px;" name="paymentId" id="paymentId" οnchange="getPaymentId();">
                                    <option value="">全部类型</option>
                                    #foreach($!{paymentEntity} in $!{t_wy.findWyPaymentItemListByStatusType()})
                                    <option value="$!{paymentEntity.paymentId}" #if($!{paymentId}==$!{paymentEntity.paymentId}) selected #end >$!{paymentEntity.name}</option>
                                    #end
                                </select>
                            </td>          
                        </tr>
                        <tr>
                            <td class="tab-content1">
                                <label><span class="red">*</span>选择模板</label>
                            </td>
                            <td class="tab-content2" id="address_real">
                                <input type="file" id="xlsFile" οnchange="upload(this)" name="file" style="width: 300px;"/>
                                <input type="hidden" id="uploadDir" name="uploadDir"/>
                            </td>
                        </tr>
                    </tbody>
                </table>
                <div class="blank"></div>
                <div class="tab_button">
                    <button type="submit" id="submitBtnsusu">上 传</button>
                    <button type="button" οnclick="javascript:history.back()">取 消</button>
                </div>
                <div class="blank"></div>
            </form>
        </div>
        <div class="cl"></div>
    </div>
    <div class="cl"></div>
</div>


--------------struts2 java代码

package com.自己的包名

import java.io.File;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts2.interceptor.ServletResponseAware;
import com.crenjoy.common.struts2.xwork2.BaseAction;
i

/**
 * 说明:实现ServletResponseAware类主要是为了file对象服务。 物业缴费信息批量导入excel
 *
 */
public class WyPayRecordInfoXlsUploadAction extends BaseAction implements
        ServletResponseAware {

    private static final long serialVersionUID = 1L;
    private static Log logger = LogFactory
            .getLog(WyPayRecordInfoXlsUploadAction.class);
    /** ID */
    private String buildingId;
    /** ID */
    private String paymentId;
    /** 上传文件的file对象 */
    private File file;
    /** 上传后生成的文件名,注意属性名有明明规则,是file,则为 fileFileName,且为String类型 */
    private String fileFileName;
    /** 文件类型,注意属性名有明明规则,是file,则为 fileContentType,且为String类型 */
    private String fileContentType;
    private HttpServletResponse response;
    /** 保存上传后的临时文件的目录 */
    private String fileTempPathName;
    /** 文件上传目录,由上传控件回调赋值 */
    private String uploadDir;
    /** 返回客户端的结果集对象 */
    Map<String, Object> resultMap = new HashMap<String, Object>();

    /***
     * 页面跳转
     *
     * @return
     */
    public String uploadExcel() {

        return SUCCESS;
    }

    /**
     * 初始化file对象.
     *
     * @return
     */
    public String impExcel() {
        // 把上传的临时文件copy到指定的目录.
        File targetFile;
        try {
            SysConfig sysConfig = ConfigManager.create();//这个类自己写吧。
            String ext = FilenameUtils.getExtension(fileFileName).toLowerCase();
            String filename = UUID.randomUUID().toString() + "." + ext;
            targetFile = new File(sysConfig.getSysTempFilePath()
                    + File.separator + filename);
            //logger.info("系统临时文件路径:" + sysConfig.getSysTempFilePath());
            org.apache.commons.io.FileUtils.copyFile(file, targetFile);
            fileTempPathName = "tmp/" + filename;
        } catch (Exception e) {
            e.printStackTrace();
            return this.writeJsonError(e.getMessage());
        }
        return this.writeJson(fileTempPathName);
    }

    /**
     * 执行保存excel模板文件的方法.
     *
     * @return
     */
    public void saveExcelInfo() {
        // 获取文件对象.
        File targetFile;
        // File("tmp/53487e62-4a2f-4838-a477-2359c67525dd.xls");
        
        //
        
        SysConfig sysConfig = ConfigManager.create();
        //系统临时文件路径:/Users/mac/Documents/tmp
        String sysTempFilePath = sysConfig.getSysTempFilePath();
        //tmp + 文件名称
        //截取上传的文件目录.
        String fileRelaPath="";

        String tmp = uploadDir.substring(0, 3);
        //截取页面中传的存放文件临时目录
        if("tmp".equals(tmp)) {
            String replace = uploadDir.replace(tmp, "");
            //重新组装文件路径字符串
            fileRelaPath = sysTempFilePath + replace;
        }
        //最综上传的文件对象.
         targetFile = new File(fileRelaPath);
        
        try {

             WyFactory.getWyServiceTypeAndStoreBuildingRemote().heatingCost(buildingId,paymentId,targetFile);
            resultMap.put("success", true);
            resultMap.put("mssage", "导入成功.");
        } catch (Exception e) {
            e.printStackTrace();
            resultMap.put("success", false);
            resultMap.put("mssage", "导入失败.");
            this.writeJson(resultMap);
        }
        this.writeJson(resultMap);
    }

    public String getBuildingId() {
        return buildingId;
    }

    public void setBuildingId(String buildingId) {
        this.buildingId = buildingId;
    }

    public String getPaymentId() {
        return paymentId;
    }

    public void setPaymentId(String paymentId) {
        this.paymentId = paymentId;
    }

    public File getFile() {
        return file;
    }

    public void setFile(File file) {
        this.file = file;
    }

    public String getFileFileName() {
        return fileFileName;
    }

    public void setFileFileName(String fileFileName) {
        this.fileFileName = fileFileName;
    }

    public String getFileContentType() {
        return fileContentType;
    }

    public String getUploadDir() {
        return uploadDir;
    }

    public void setUploadDir(String uploadDir) {
        this.uploadDir = uploadDir;
    }

    public void setFileContentType(String fileContentType) {
        this.fileContentType = fileContentType;
    }

    @Override
    public void setServletResponse(HttpServletResponse response) {
        this.response = response;

    }

    public String getFileTempPathName() {
        return fileTempPathName;
    }

    public void setFileTempPathName(String fileTempPathName) {
        this.fileTempPathName = fileTempPathName;
    }

}


 类似资料: