欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

el表达式与ognl表达式(el失效)

程序员文章站 2022-05-18 08:37:55
...

 

在框架出问题时,可能由于版本兼容等,可以直接官网下载框架源码demo运行,在纯净的环境下测试,,大框架的时候,参考配置也应如此

 

 

 

二者在sturts2中效果一致,el会先从web资源对象(quest,session等)中去,取不到从valuestack中取,

 

EL表达式原本的查找顺序为:

 page,request,session,application,找到返回。

值栈并不在EL表达式的作用范围之内,因此不能使用。但是 struts2对request对象进行了增强,即StrutsRequestWrapper对象,里面重写了getAttribute()方法:在request找不到之后到值栈里面找,因此

EL表达式的查找顺序变为:page,request,valueStack.findValue(),session,application。

值栈:

root:action对象

context:map---》web资源

 

 

但是el表达式只需要jsp servlet版本2.4,才可解析el,(el表达式不能解析的标志是原字符串显示,能解析没有值是空白)

<web-app version="2.4" 

       xmlns="http://java.sun.com/xml/ns/j2ee" 

       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

       xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 

       http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

 

 

 

jstl标签需要jstl,standar.jar

 

 

 

有时在升级的时候由于过滤器的问题导致el获取不到,只有struts标签可以获取

 

2.3.xx用这个

 

<!-- Struts2 配置-->

<filter>

        <filter-name>struts2</filter-name>

        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

    </filter>

 

    <filter-mapping>

        <filter-name>struts2</filter-name>

        <url-pattern>/*</url-pattern>

        <dispatcher>REQUEST</dispatcher>

<dispatcher>FORWARD</dispatcher>

    </filter-mapping>

 

 

 

 

不能用:

 

这个只能2.0低版本用

 

<filter>

        <filter-name>struts2</filter-name>

        <filter-class>

           org.apache.struts2.dispatcher.FilterDispatcher

        </filter-class>

    </filter>

    <filter-mapping>

        <filter-name>struts2</filter-name>

        <url-pattern>/*</url-pattern>

<dispatcher>REQUEST</dispatcher>

<dispatcher>FORWARD</dispatcher>

    </filter-mapping>

 

 

 

还有就是升级的时候sturts时的标签库需要通步改回,2.0改为2.3

 

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC

    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"

    "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

 

</struts>

 

 

相关标签: struts2 el ognl