2013-11-26 42 views
1

我試圖訪問一個Struts2的s:if標籤內一個scriptlet變量中訪問小腳本變量在我的JSP無法從Struts 2的標籤

<% 
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。什麼是問題?

+2

不要使用小腳本。 –

回答

1

問題是行動上下文中沒有名爲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()"> 
0

這次終於

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

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