`

有关Struts2的标签不支持<%%>和$(EL表达式的符号)的问题

阅读更多

在struts2的2.0.11及以上版本的changelog里,官方已经说了不再支持EL表达式,官方说的是因为安全问题,这个在 JE上已经有所讨论了。

至于struts2的标签还不支持<%%>这种JSP的标准java标签不知道是什么时候开始的,反正例如下面的

<s:url id="selectData1" value="<%=request.getContextPath()%>/test/country.jsp"/>

 

会报错

 

而<s:url id="selectData1" value="${pageContext.request.contextPath}/test/country.jsp"/>

 

也会报错(EL不支持)

 

那么如果我想得到应用的contextPath该怎么办呢,去google搜索,你会发现有人给出的方法

<s:property value="#request.get('javax.servlet.forward.context_path')" />

 

或是先用

 

      <%request.setAttribute('root',request.getContextPath())%>

 

再用

      <s:property value="%{#request.contextPath}" />

 

怎么感觉这两种都很别扭,后来我试验发现可以直接这么写:

 

<s:url id="selectData1" value="%{#request.getContextPath()}/test/country.jsp"/>

 

也是正确的.

 

ognl不仅支持lambda方式的取值,还支持这种普通的方法式的调用.

 

分享到:
评论
12 楼 gteam.yu 2010-12-29  
LZ 你直接使用STRUTS2标签<S:DEBUG />,然后看里面的解释,用#+ID可以取值,或者直接用ID取到VALUESTACK里面的值.
11 楼 guobangxiang 2010-10-21  
其实看个人习惯··我觉得JSTL + EL表达式 挺好用的
10 楼 hypercube1024 2010-10-15  
coffeesweet 写道
zhangyou1010 写道
用jstl不好些吗?


呵呵,项目统一用的struts2标签,如果单独为了这个问题用jstl标签,在其它的struts2标签里如果想引用该变量还是会有问题的.


struts2标签的性能差的不是一点,你用struts2标签和jstl分别迭代100行记录,看看执行时间就知道差多少倍
9 楼 angel243fly 2010-07-14  
以前为这个问题苦恼过。。。。。
8 楼 fierce 2010-07-14  
弱弱地问一下,EL的安全性问题,搜索不到相关帖,或者给个链接
7 楼 coffeesweet 2010-07-14  
aaa5131421 写道
其实我感觉统一使用jstl标签会更好一些,mvc这种还是只用他的控制逻辑的比较好。


呵呵,关于标签这东西还是各有所需吧,习惯哪个就用哪个好了,看个人习惯了,嘿嘿!
6 楼 lwcheng1985 2010-07-14  
恩,不错,我说经常用el时,会出现莫名的错误,thks
5 楼 aaa5131421 2010-07-13  
其实我感觉统一使用jstl标签会更好一些,mvc这种还是只用他的控制逻辑的比较好。
4 楼 coffeesweet 2010-07-13  
zhangyou1010 写道
用jstl不好些吗?


呵呵,项目统一用的struts2标签,如果单独为了这个问题用jstl标签,在其它的struts2标签里如果想引用该变量还是会有问题的.
3 楼 sunliao_first 2010-07-13  
有些标签觉得使用html更完美
2 楼 zhangyou1010 2010-07-13  
用jstl不好些吗?
1 楼 tanglei528 2010-07-13  
恩  , 不错  !  学习一下

相关推荐

    struts2 <s:if>标签使用

    struts2 &lt;s:if&gt;标签使用struts2 &lt;s:if&gt;标签使用struts2 &lt;s:if&gt;标签使用struts2 &lt;s:if&gt;标签使用struts2 &lt;s:if&gt;标签使用struts2 &lt;s:if&gt;标签使用

    struts标签(如<html:form>)

    关于STRUTS标签的一些详细说明。 如:&lt;html:form&gt;的说明。

    Struts2标签库

    &lt;%@ taglib uri="/struts-tags" prefix="s" %&gt; 结合例子,重点掌握以下标签的用法 (1) &lt;s:property&gt; (2) &lt;s:set&gt; (3) &lt;s:if&gt; 、&lt;s:elseif&gt;、&lt;s:else&gt; (4) &lt;s:iterator&gt; (5) &lt;s:include&gt; (6) &lt;s:form&gt;、&lt;s:hidden&gt; (7...

    struts_jstl

    &lt;tr&gt;&lt;br&gt; &lt;td&gt;姓名&lt;/td&gt;&lt;br&gt; &lt;td&gt;年龄&lt;/td&gt;&lt;br&gt; &lt;td&gt;所属组&lt;/td&gt;&lt;br&gt; &lt;/tr&gt;&lt;br&gt; &lt;c:forEach var="user" items="${userlist}"&gt;&lt;br&gt; &lt;tr&gt;&lt;br&gt; &lt;td&gt;&lt;c:out value="${user.username}"/&gt;&lt;/td&gt;&lt;br&gt; &lt;td&gt;&lt;c:out value="${...

    Struts2中使用标签实现组合查询和带分页的例子

    NULL 博文链接:https://z18022893621.iteye.com/blog/1956098

    Struts2标签库的所有

    &lt;%@ taglib uri="/struts-tags" prefix="s" %&gt; 结合例子,重点掌握以下标签的用法 (1) &lt;s:property&gt; (2) &lt;s:set&gt; (3) &lt;s:if&gt; 、&lt;s:elseif&gt;、&lt;s:else&gt; (4) &lt;s:iterator&gt; (5) &lt;s:include&gt; (6) &lt;s:form&gt;、&lt;s:hidden&gt; (7...

    struts jstl el表达式示例代码

    struts jstl el表达式示例代码 struts jstl el 表达式 源码

    struts2的标签库

    这是一份关于struts2...&lt;s:if&gt;:拥有一个test属性,其表达式的值用来决定标签里内容是否显示。&lt;s:if test="#request.username=='hzd'"&gt;欢迎hzd&lt;/s:if&gt; &lt;s:elseif&gt;:同上。 &lt;s:else&gt; …… …… 很实用的,就是简洁明了

    通用代码下一页

    &lt;s:include value="../Struts2GotoPage.jsp"&gt;&lt;/s:include&gt; &lt;s:iterator value="goods" id="item" status="st"&gt; &lt;tr align="center"&gt; &lt;td &gt;${st.index+1} &lt;/td&gt; &lt;td &gt;${item.gsName }&lt;/td&gt; &lt;td &gt;${item....

    JSP+Struts+JSTL+EL新闻发布系统jsp

    前台制作采用标签制,分为系统标签和用户自义义标签两种,系统标签是自代的,用户不可以修改,而自定义标签则是用户根据相应的功能自己定制出来的,固此,可以自行删除或修改! 4、秉承JAVA开源理念,本新闻发布系统...

    struts2<s:if>使用心得

    &lt;td&gt; &lt;s:set name="actorRef" value="actorId" /&gt; &lt;s:set name="taskName" value="name" /&gt; &lt;s:if test="#actorRef=='' or #actorRef==null"&gt;共享任务(&lt;a href="${pageContext.request.contextPath}/ga/...

    struts验证框架.doc

    &lt;%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %&gt; &lt;%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %&gt; &lt;%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %&gt; &lt;html&gt;&lt;head&gt;&lt;title&gt;...

    struts2 标签库 帮助文档

    &lt;%@ taglib prefix="s" uri="/struts-tags" %&gt; 就能使用struts2.0的标签库 下面就介绍每个标签的具体应用实例说明:按字母排列 A: 1. 2. &lt;s:a href=""&gt;&lt;/s:a&gt;-----超链接,类似于html里的&lt;a&gt;&lt;/a&gt; 3. &lt;s:...

    java 学生信息管理

    &lt;td&gt;&lt;a href="updateinformation.jsp"&gt;更改信息 >>&lt;/a&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;p&gt;&nbsp;&nbsp;&nbsp;&nbsp;&lt;a href="login_confirm?action=logout"&gt;&lt;&lt;注销 &lt;/a&gt;&lt;/p&gt; &lt;/body&gt; &lt; html&gt; (3) 修改项学生...

    struts 标签 logic:iterate使用 logic:iterate

    &lt;br&gt; &lt;/td&gt;&lt;br&gt; &lt;/tr&gt;&lt;br&gt; &lt;/table&gt;&lt;br&gt; &lt;table width=800&gt;&lt;br&gt; &lt;tr&gt;&lt;br&gt; &lt;td height=1 width=700 bgcolor=gray colspan=2&gt;&lt;/td&gt;&lt;br&gt; &lt;/tr&gt;&lt;br&gt; &lt;/table&gt;&lt;br&gt; &lt;table width=800&gt;&lt;br&gt; &lt;tr&gt;&lt;br&gt; ...

    Struts 1.XX <html:file>的使用

    NULL 博文链接:https://12345678.iteye.com/blog/713954

    OA 办公自动化, DAO登陆设计

    &lt;%@ page language="java" pageEncoding="UTF-8"%&gt; &lt;%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %&gt; &lt;%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %&gt; &lt;%@ taglib uri="/WEB-INF/struts-...

    struts2-指南

    — Web 应用的发展&lt;br&gt;— Model 1 和Model 2&lt;br&gt;— MVC 思想&lt;br&gt;— MVC 模式的优势&lt;br&gt;— 常用MVC 框架及其特征&lt;br&gt;— Struts 1 的基本结构及其存在的问题&lt;br&gt;— WebWork 的基本结构&lt;br&gt;— Struts 2 的起源&lt;br&gt;— ...

    galaxy-java 开源java框架。

    功能,相比struts2和spring,着实方便多了. 如果觉得好用,就放弃ssh吧,加入到galaxy的阵营。 1. 完成一个用户管理功能? user.jsp ,这个页面用于新增,修改一个用户 &lt;html&gt; &lt;head&gt;&lt;/head&gt; &lt;body&gt; &lt;% ...

    解决struts2.1.6+spring+hibernate 中文乱码

    &lt;filter-name&gt;struts-cleanup&lt;/filter-name&gt; &lt;filter-class&gt; org.apache.struts2.dispatcher.ActionContextCleanUp &lt;/filter-class&gt; &lt;/filter&gt; &lt;filter-mapping&gt; &lt;filter-name&gt;struts-cleanup&lt;/filter-name&gt; ...

Global site tag (gtag.js) - Google Analytics