簡體   English   中英

無法從Struts 2標簽內部訪問scriptlet變量

[英]Unable to access scriptlet variable from inside Struts 2 tag

我正在嘗試訪問JSP的struts2 s:if標記內的scriptlet變量

<%
Website website = (Website)request.getAttribute(Website.NAME);
out.println(website.isUkSite());  // prints true
 %>

<s:if test="#website.isIrishSite()">  // this is returning false 
....

實際上,這s:if應該評估為true 有什么問題?

問題是動作上下文中沒有名為website的變量。 為了使其正常工作,您可以使用

<%
Website website = (Website)request.getAttribute(Website.NAME);
out.println(website.isUkSite());  // prints true

ActionContext.getContext().put("website", website); 
 %>

但是scriplets是一個錯誤的選擇,您可以刪除此代碼並使用

<s:if test="#request.website.isIrishSite()">

終於成功了

<%
Website website = (Website)request.getAttribute(Website.NAME);
out.println(website.isUkSite());  // prints true
 %>

<s:if test="website.ukSite">    
  // this is executed finally !!
</s:if>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM