`
cxshun
  • 浏览: 720577 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

EL表达式遇到的问题

阅读更多

今天在为客户做一个新需求,重新做几个JSP页面和几个servlet,这本不是难事,但难在工作好几个月都没怎么碰过JSP了,用着JSTL还是有点战战兢兢,不知道会出什么问题。

1)很快,在写JS的时候用EL表达式就遇到问题啦。

直接alert(${sql})这样似乎是正确的,这里的sql是我在前一个转发到此JSP的servlet中通过request.setAttribute方法进行设入的,很明显我们在HTML代码中直接这样取是没问题的。

但这样不行,JS运行不了。想想哪里出问题了。

杯具罗,实在没办法,随便加个单引号,改成

alert('${sql}');
 

这次有东西啦,但出现个这个东西。

谁不知道它不是数字啊,你提醒顶个鸟用啊。

看来它不听话,我们再改,改成

alert("${sql}");

   这下竟然没问题了。

直接一串东西出来了:

总算正确啦。但要记住的是,如果我们是直接跟其他JS代码进行拼接,我们并不需要双引号,而是直接写入:

var url = "<%=request.getContextPath()%>/websearch/addBookSpecial_new.jsp?sql=${sql}";

如这样,当然我们另外把它当成字符串加上也不为过。

有些童鞋可能直接拿到一串东西跟我类似的带%这样的东西直接来传,那么很杯具,它会报一下错误:

警告: Parameters: Character decoding failed. Parameter skipped.
java.io.CharConversionException: isHexDigit

    相信不少东西看到这些都相当的激动啊,传个参数而已,用得着么。

不要激动,慢慢来。URL中是不允许出来那些奇怪的字符的,所以不要怪浏览器。

我们只需要将URL编一下码就OK了:

url = encodeURI(url);
url = encodeURI(url);

  这里有些朋友说是一次,有些朋友说两次,不过我自己试了是两次,只有经过两次编码后,再在页面处通过:

String sql = request.getParameter("sql");
sql = java.net.URLDecoder.decode(sql,"utf-8");

  进行转码就可以取出参数了,这样取出的是正常的。

 

2)以前就遇到过用EL表达没值的时候会输出空,这个比较郁闷,好好地一个单元格,如果你没值,连那个单元格都是面目全非的。这个不是EL表达式的问题,对,这个不是。但既然这篇文章讲到EL表达式,这个也就赖到它身上了。反正有一个问题,再多一个也不为过。

<c:forEach items="${books}" var="book">
	<tr>
		<td>${book.title }</td>
		<td>${book.author }</td>
	</tr>
</c:forEach>

  外面当然有表格包含住它,并且我们为此表格的单元格设了如下样式:

table td{
    border-bottom:1px solid #F0F0F0;
}

  这个相信大家都看得懂,就不多说了,一般情况下这当然是没问题了。

但大家看看下面这个情况:

 

看到这种情况,相信你不能再淡定了。

为什么?明明设了border-bottom,是啊,是设了啊,但为什么没有啊。请注意,这种情况是在IE9的兼容模式下出现的,IE6,7,8都有同样的情况,这个估计是微软的问题。在其他浏览器上是正常的。

但有问题始终是要解决的。

解决方法很简单,我们只需要在前面的table的样式那里添加多一个:

border-collapse: collapse;

   注意,是table的样式,不是td的样式。这样,我们再看一下效果。

当然,如果还有些童鞋杯具的弄不出来,可以尝试在td样式处加上:

empty-cells: show;

   一般情况下就没什么问题了。

 

解决完问题,又要继续努力BlogWriter,希望早日完成。

  • 大小: 8 KB
  • 大小: 14.6 KB
  • 大小: 13.6 KB
  • 大小: 9.1 KB
1
0
分享到:
评论

相关推荐

    使用IDEA编写jsp时EL表达式不起作用的问题及解决方法

    在使用IDEA开发maven+springMVC项目时遇到不加载EL表达式的问题,怎么处理呢?下面小编给大家带来了实现代码,一起看看吧 加载如下JSP代码: &lt;&#37;@ page contentType=text/html;charset=UTF-8 language=java %...

    jsp页面中EL表达式被当成字符串处理不显示值问题的解决方法

    在自己练手时遇到了EL表达式被当成字符串处理而没有正确解析的现象。当时工程中使用的Javaee5, web.xml xmlns javaee xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xsi:schemaLocation&gt; EL表达式死活不...

    JSTL与El表达式源代码

    此源代码为自己练习所写,适合于此阶段遇到困难的人员使用,看看源代码,也可以直接套用,有什么不懂的可以私聊我,或者评论发表...

    正则表达式

    m (多行查找) vaScript动态正则表达式问题 请问正则表达式可以动态生成吗? 例如JavaScript中: var str = "strTemp"; 要生成: var re = /strTemp/; 如果是字符连接: var re = "/" + str + "/"即可 但是要...

    调试JavaScript中正则表达式中遇到的问题

    关于正则表达式中字符串测试分问题,我们一般有test()和exec&#40;&#41;两种方法,关于这两种方法的区别我这里就不加详细阐述了,主要就是test()返回布尔值,exec&#40;&#41;返回匹配到的字符数组,但是今天我遇到一个...

    java合并LIST

    遇到合并两个LIST的问题,自己用JAVA语言写出来,将代码粘贴成文档

    解决jsp开发中不支持EL问题

    今天遇到了一个莫名其妙的问题,就是在使用MyEclipse5.5或6.0时遇上了解析不到EL表达式的问题。经过好几个小时的琢磨终于发现了,给大家share一下

    JavaWeb核心资源包(EL+JSTL+Standard+Mysql-Connector+Jsp+Servlet)

    学习JavaWeb经常遇到Servlet错误,数据库连接错误,EL表达式无法使用,页面显示不出来,然后是各种500错误。很多时候都是因为这个六个核心资源包出了问题,因此我上传了这六个核心资源包,包括EL+JSTL+Standard+...

    新版全面系统完整的JavaWeb视频教程

    本教程为授权作品 本JavaWEB视频教程是专为大数据方向的学员量身打造,涵盖JavaWEB 企业级开发所用到的HTML、CSS、...对于大数据方向的同学来讲,借助本教程的学习,足够满足在实际工作中遇到的JavaWEB各方面的问题。

    spring框架登录初始化数据与struct2权限设置等相关知识

    本文结合OA项目,介绍ssh框架所遇到的核心问题,包含登录时数据初始化设置,hibernate懒加载处理,structs2对权限的拦截处理,jsp页面传值EL和ONGL表达式的介绍

    JAVA上百实例源码以及开源项目

    百度云盘分享 简介 笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级、中级、高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情、执着,对...

    JAVA上百实例源码以及开源项目源代码

    简介 笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级、中级、高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情、执着,对IT的憧憬、向往!...

    java开源包1

    它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。 WebSocket协议的Java实现 WebSocket4J WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。...

    java开源包11

    它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。 WebSocket协议的Java实现 WebSocket4J WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。...

    java开源包2

    它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。 WebSocket协议的Java实现 WebSocket4J WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。...

    java开源包3

    它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。 WebSocket协议的Java实现 WebSocket4J WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。...

    java开源包6

    它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。 WebSocket协议的Java实现 WebSocket4J WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。...

    java开源包5

    它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。 WebSocket协议的Java实现 WebSocket4J WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。...

    java开源包10

    它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。 WebSocket协议的Java实现 WebSocket4J WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。...

Global site tag (gtag.js) - Google Analytics