检索字段错误,javascript minifier错误

时间:2015-09-01 05:07:07

标签: javascript java jsp liferay syntax-error

我知道这个问题现在可能有很多重复,但我在处理我的liferay项目时遇到了这个问题......

通过这样做,我将检索到的数据库字段放在我的jsp中,

<portlet:resourceURL  var="imageResourceURL1">
<portlet:param name="image" value="nbi"/>
</portlet:resourceURL>

<script type="text/javascript">
    function checkUploads(){
        <% 
            Blob nbi=null, omb=null, san=null, cs=null, birthCert=null, affid=null, waiver=null;
            try{

                attachments a = attachmentsLocalServiceUtil.getAttachmentsByUserId();

                nbi = a.getNbi_clearance();
                omb = a.getOmbudsman_clearance();
                san = a.getSandiganbayan_clearance();
                cs = a.getCivil_service_clearance();
                birthCert = a.getBirthcertificate();
                affid = a.getAffidavit_of_no_relation();
                waiver = a.getAuth_waiver();

                out.println(nbi);
                out.println(omb);
                out.println(san);
                out.println(cs);
                out.println(birthCert);
                out.println(affid);
                out.println(waiver);

            }catch(Exception e){
                out.println(e);
            }
        %>

        /* check nbi */  
        if(nbi == null || nbi == ""){
            $(".nbiUpload").empty().append(
            '<input type="file" accept="image/*" name="<portlet:namespace />nbiFile" id="nbi" style="display:none" />'
            +'<input type="text" id="nbiFilename" />'
            +'<button type="submit" id="nbiBrowse" onclick="$("#nbi").click()">Browse</button>'
            +'<button type="button" id="nbiUpload" name="<portlet:namespace />nbisubmit">Upload</button>'
            +'<script type="text/javascript">'
                +'$("#nbi").change(function(e) {'
                    +'$("#nbiFilename").val(this.files[0].name);'
                +'});'
                +'$("#nbiUpload").click(function(event){'
                    +'event.preventDefault();'
                +'});'
                +'$("#nbiBrowse").click(function(event){'
                    +'event.preventDefault();'
                +'});'
            +'< /script>');
        }else{
            $(".nbiUpload").empty().append(
            '<a id="nbiclearance" href='<%=imageResourceURL1.toString()%>' rel="lightbox" style="cursor:pointer">'
            +'<img src='<%=imageResourceURL1.toString()%>' alt="no Image" id="img_nbi_clearance" style="height:100px;width:130px;cursor:pointer;" border="0"></a>');
        }
    }
</script>

我无法理解的是错误,我得到了这些错误,

18:28:13,916 ERROR [http-bio-8080-exec-160][MinifierUtil:111] 3: 38: missing ; before statement
18:28:13,917 ERROR [http-bio-8080-exec-160][MinifierUtil:111] 7: 33: missing ; before statement
18:28:13,918 ERROR [http-bio-8080-exec-160][MinifierUtil:111] 24: 10: syntax error
18:28:13,918 ERROR [http-bio-8080-exec-160][MinifierUtil:111] 26: 39: missing ) after argument list

也许我只是语法错误,所以请帮助我.. :)

2 个答案:

答案 0 :(得分:1)

如果没有给出问题的确切位置(当所有人都可以做的是读取一些生成输出的代码时很难),这就是我希望你自己调试的方法:你的问题似乎与Minifier一样 - 这是删除多余空格和换行符的组件,并假设您的脚本代码有效。解决此问题的一个好方法是暂时删除<script>标记。将其替换为(script)(/script),打开页面,搜索此临时内容,缩小器不会触及它。但现在您可以看到HTML文档中的确切呈现方式。

典型问题是:您应该考虑转义输出的各种值:数据库中的文件名或其他数据可能包含空格,引号或其他特殊字符,这些字符会混淆输出并在意外位置终止字符串。

另一种选择是:将?strip=0添加到URL - 这应该禁用Liferay的JS minifier。你仍然会有无效的JS代码,但现在浏览器的开发者工具可以直接指向有问题的地方。

答案 1 :(得分:0)

我认为您错过了在脚本的其他部分添加“ + ”..

if(nbi == null || nbi == ""){
    $(".nbiUpload").empty().append(
    '<input type="file" accept="image/*" name="<portlet:namespace />nbiFile" id="nbi" style="display:none" />'
    +'<input type="text" id="nbiFilename" />'
    +'<button type="submit" id="nbiBrowse" onclick="$("#nbi").click()">Browse</button>'
    +'<button type="button" id="nbiUpload" name="<portlet:namespace />nbisubmit">Upload</button>'
    +'<script type="text/javascript">'
        +'$("#nbi").change(function(e) {'
            +'$("#nbiFilename").val(this.files[0].name);'
        +'});'
        +'$("#nbiUpload").click(function(event){'
            +'event.preventDefault();'
        +'});'
        +'$("#nbiBrowse").click(function(event){'
            +'event.preventDefault();'
        +'});'
    +'< /script>');
}
else
{
    $(".nbiUpload").empty().append(
    '<a id="nbiclearance" href=' + '<%=imageResourceURL1.toString()%>' + ' rel="lightbox" style="cursor:pointer">'
    +'<img src=' + '<%=imageResourceURL1.toString()%>' + ' alt="no Image" id="img_nbi_clearance" style="height:100px;width:130px;cursor:pointer;" border="0"></a>');
}