EL 无法解析(原样输出EL)解决办法

JSP页面EL表达式无效的问题2008-01-20 16:44以前用WSAD wizard做的,都可以在JSP页面中解析到EL表达式,当然前提是JSP2.0的情况下。
今天遇到了一个莫名其妙的问题。刚下载Eclipse3.3+MyEclipse6.0体验的过程中,遇上了解析不到EL表达式的问题。经过好几个小时的琢磨终于发现了,给大家share一下:
问题就出在建Web Project的时候web.xml声明上。
web.xml声明部分一般分为如下版本的xsd,
web-app_2_2.xsd
web-app_2_3.xsd
web-app_2_4.xsd
web-app_2_5.xsd

更详细的列出各版本web.xml声明部分吧,如下:
web-app_2_2.xsd

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/dtd/web-app_2_2.dtd">


web-app_2_3.xsd

<?xml version="1.0" encoding="UTF-8"?>    
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">


web-app_2_4.xsd

<?xml version="1.0" encoding="UTF-8"?>    
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">


web-app_2_5.xsd

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">


确定web.xml里的xsd版本之后一定要在JSP的声明(<%@page %>)部分加一行,如下:
<%@ page isELIgnored="false" %> 
这样设为false才能解析EL表达式。
经过各版本的test之后....
注意!! 其中servlets 2.4(我没记错的话JSP 2.0出来之后的第一个版本),这个版本的isELIgnored默认设置为false。所以使用web.xml里用web-app_2_4.xsd声明的时候在JSP页面不用特意声明。

下面是官方Documention中isELIgnored Attribute的详解:
The isELIgnored Attribute 
• Format
– <%@ page isELIgnored="false" %>
– <%@ page isELIgnored="true" %>
Purpose
– To control whether the JSP 2.0 Expression Language
(EL) is ignored (true) or evaluated normally (false).
• Notes
– If your web.xml specifies servlets 2.3 (corresponding to
JSP 1.2) or earlier, the default is true
• But it is still legal to change the default—you are permitted
to use this attribute in a JSP-2.0-compliant server
regardless of the web.xml version.
– If your web.xml specifies servlets 2.4 (corresponding to
JSP 2.0) or earlier, the default is false
### el-select 组件处理 ` ` 问题解决方案 当使用 `el-select` 组件时,如果选项中的文本包含 HTML 实体如 ` `,可能会遇到显示不正常的情况。为了确保这些实体能够正确解析并显示为空格或其他预期字符,可以采取以下几种方法: #### 方法一:自定义插槽 (Scoped Slot) 通过使用 scoped slot 可以更好地控制选项的内容渲染方式。这样可以直接操作 DOM 节点,从而避免默认行为对特殊字符的不当处理。 ```html <template> <div> <el-select v-model="selectedValue"> <el-option v-for="(item, index) in options" :key="index" :label="renderLabel(item)" :value="item.value"> </el-option> </el-select> </div> </template> <script> export default { data() { return { selectedValue: '', options: [ { value: 'option1', label: 'Option with space' }, { value: 'option2', label: 'Another option with  ' } ] }; }, methods: { renderLabel(item) { // 使用 innerHTML 来保留标签内的 html 特殊字符 const span = document.createElement('span'); span.innerHTML = item.label; return span.innerText || span.textContent; } } }; </script> ``` 这种方法利用 JavaScript 的 `innerHTML` 属性将字符串作为 HTML 进行解析,然后再获取纯文本形式返回给组件用于显示[^1]。 #### 方法二:CSS 解决方案 另一种更简单的方法是在样式层面解决问题。可以通过 CSS 设置 `.el-select-dropdown__item` 类下的元素强制其识别某些特定的空白符为实际的空间而不是忽略它们。 ```css .el-select-dropdown__item { white-space: pre-wrap !important; /* 或者其他合适的属性 */ } ``` 此设置允许换行和多个连续空格得以保存下来,并按照原样呈现给用户查看[^2]。 这两种方法都可以有效地解决 `el-select` 中由于 ` ` 导致的问题,具体选择哪种取决于项目需求和个人偏好。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值