struts2 標籤 擷取s:param的值 子頁面擷取 s:include s:param的值

來源:互聯網
上載者:User

首頁面用<s:param>傳的參數,子頁面無法用struts2的標籤擷取到參數

<s:property value="#request.operation"/>

或是<s:property value="operation"/>

或是<s:property value="%{#attr.operation}"/>

均擷取不到值,

網上找了一個哥們的原文:

解釋如下:

看了Struts2的文檔,說是由於include不會更新valueStack的緣故,所以ognl無法從valueStack中擷取。同時文檔介紹使用jstl可以在頁面中擷取:

${param.operation}

但是本人為了整站的統一,不希望struts標籤和jstl標籤的混用,所以希望只能struts2解決,根據那個哥們的文章,解決辦法如下:

在父頁面傳入參數:

<s:include value="/jsp/include_vedio/head.jsp" ><%-- 把頁面的title傳進去 --%><s:param name="page_title">修改頁面title</s:param></s:include>

在子頁面中加入以下代碼

<%@page import="com.opensymphony.xwork2.ognl.OgnlValueStack"%><% ((OgnlValueStack) request.getAttribute("struts.valueStack")).set(   "page_title", request.getParameter("page_title"));%><s:if test="page_title != null"><s:property escape="false" value="page_title" /> - 網站</s:if><s:else>網站</s:else>

然後就可以用struts2標籤<s:property value/>去擷取值了

原文來自:http://wenku.baidu.com/view/b23a4e26aaea998fcc220eef.html

感謝原作者。本文在原文的基礎上整理了一下

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.