`
cxshun
  • 浏览: 724093 次
  • 性别: 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
分享到:
评论

相关推荐

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

    综上所述,在开发中遇到EL表达式问题时,可以通过调整web.xml文件中的JSP版本配置或在JSP页面中调整page directive指令来解决。同时,了解EL表达式在不同Java EE版本中的行为差异以及它们提供的新特性,有助于在实际...

    maven项目中的EL表达式问题

    然而,在转换过程中遇到了一个问题:JSP页面中的EL表达式没有被正确解析,而是原样输出。这显然是不正常的。 #### 三、问题定位与分析 经过排查,问题的根源在于Maven项目默认使用了Web 2.3规范。而在该规范下,EL...

    el表达式不起作用解决方案

    然而,有时开发者可能会遇到EL表达式不工作的问题,这可能给开发过程带来困扰。本篇文章将详细探讨这个问题,并提供几种有效的解决方案。 1. **检查JSP页面的DOCTYPE** EL表达式在JSP 2.0及更高版本中默认启用。...

    EL表达式所用的jar包.rar

    在项目开发中,如果遇到JSP页面无法识别或执行EL表达式,很可能是缺少了必要的依赖库,特别是`el-api.jar`和`jstl.jar`这两个核心jar包。 首先,`el-api.jar`包含了EL表达式的API定义,定义了EL表达式的语法和行为...

    EL表达式无效问题《ZT》

    当遇到EL表达式无效的问题时,通常有以下几个原因: 1. **依赖库缺失**:EL表达式是基于特定的库实现的,如`jstl.jar`和`standard.jar`。`jstl.jar`包含JSTL(JavaServer Pages Standard Tag Library)的核心标签库...

    EL表达式详解关于web的问题

    如果遇到EL表达式不起作用的情况,应检查是否有人在上述三个位置设置了禁用EL的配置。同时,确保正确地在适当的作用域中设置和检索变量,以防止因作用域问题导致的错误。 总之,EL表达式在Web开发中提供了强大的...

    EL表达式函数

    ### EL表达式函数详解 #### 一、引言 在Web开发中,特别是使用Java Server Pages (JSP)进行开发时,我们经常会遇到需要在页面上动态处理数据的情况。为了提高开发效率并确保代码的简洁性和可维护性,Java Standard...

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

    根据文档描述,开发者在使用JavaEE 5标准构建项目的过程中遇到了一个问题:即EL表达式被当作普通的字符串处理而不显示其计算结果或所引用的值。例如,EL表达式`${2000%20}&lt;/p&gt;`在某些情况下会被直接输出为`${2000%20...

    tomcat5.5.28支持EL 表达式的解决方法.

    ### Tomcat 5.5.28与EL表达式的兼容性问题 Tomcat 5.5.28作为一款历史悠久的Java应用服务器,其默认配置可能并不完全支持JSP 2.0规范中的所有特性,包括EL表达式。这主要是因为Tomcat的版本与所支持的JSP版本之间...

    jsp 不支持EL表达式,解决办法.docx

    然而,有时我们可能会遇到 JSP 不支持 EL 表达式的情况,这通常是由于服务器配置或 JSP 版本过低导致的。以下是一些解决这个问题的方法: 1. **更新 `web.xml` 配置**: 如果你的 `web.xml` 文件配置的是 Servlet ...

    JSTL与El表达式源代码

    对于初学者而言,这是一个很好的实践和学习资源,能够解决在实际开发中遇到的问题,提高解决问题的能力。如果你在学习过程中有任何疑问,可以直接联系作者进行交流,这是一种很好的学习社区互动方式。

    EL表达式处理带图片内容的显示问题

    首先,我们遇到的问题是EL表达式在展示数据时,可能包含图片链接或其他富文本内容。为了更好地管理和呈现这些内容,我们可以采取以下策略: 1. **变量定义**: 在某些情况下,我们可能需要先将原数据存储到一个...

    jsp 不支持EL表达式,解决办法

    但在某些情况下,可能会遇到JSP不支持EL表达式的问题,本文将详细介绍这一问题及其解决方案。 #### 一、问题背景与原因分析 EL表达式的支持与JSP版本密切相关。根据描述中的信息,“默认情况下,Servlet2.3/JSP1.2...

    浅谈java里的EL表达式在JSP中不能解析的问题

    然而,在实际开发过程中,可能会遇到EL表达式无法在JSP页面中被解析的问题,这通常与web应用的配置有关。 首先,EL表达式无法解析的问题可能与web.xml文件中配置的应用版本有关。web.xml是Web应用的标准部署描述...

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

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

    El表达式使用问题javax.el.ELException:Failed to parse the expression的解决方式

    例如,问题中提到的情况,EL表达式`${owner.new}`会抛出异常,因为`new`是Java中的一个关键字,用于实例化新对象。Tomcat 7尤其对EL表达式的语法检查较为严格,不允许使用关键字作为属性名。 解决这个问题有以下几...

    JSP页面无法识别EL表达式问题解决方案

    然而,有时我们可能会遇到JSP页面无法识别EL表达式的问题。本篇将深入探讨这个问题,并提供解决方案。 问题的核心在于,EL表达式没有被正确地解析和执行。在给定的描述中,开发者遇到了在JSP页面上尝试用EL表达式 `...

Global site tag (gtag.js) - Google Analytics